C++ 算法:计算连续上升数字的最大数量
以下是使用 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 数组输出即可。
原文地址: https://www.cveoy.top/t/topic/qc7B 著作权归作者所有。请勿转载和采集!