以下是使用 C++ 编写的解答代码:

#include <iostream>
#include <vector>
using namespace std;

int main() {
    int n;
    cin >> n;
    vector<int> a(n);
    for (int i = 0; i < n; i++) {
        cin >> a[i];
    }
    vector<int> ans(n, 1);
    for (int i = n - 2; i >= 0; i--) {
        if (a[i] < a[i+1]) {
            ans[i] = ans[i+1] + 1;
        }
    }
    for (int i = 0; i < n; i++) {
        cout << ans[i] << " ";
    }
    cout << endl;
    return 0;
}

该代码首先读取输入的 n 和 n 个整数 a[1]~a[n],然后创建一个长度为 n 的数组 ans,初始化每个元素为 1。接着从倒数第二个元素开始,如果当前元素比下一个元素小,则将 ans[i] 设置为 ans[i+1]+1,表示从当前元素开始往后最多有多少个连续的数字依次上升。最后将 ans 数组输出即可。

C++ 算法:计算连续上升数字的最大数量

原文地址: https://www.cveoy.top/t/topic/qc7B 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录