进阶的卡莎
题目描述:
虚空之女·卡莎考入了战斗学院,她的父亲虚空行者·卡萨丁要检查她的考试成绩。已知卡莎一段时间内的成绩序列,请你帮卡萨丁计算卡莎在这段时间内最长的成绩连续上升(相等不算做连续上升)的长度。
例如,给出卡莎的成绩序列是85 90 80 85 90 95 95 80 75 75,其中连续上升序列包括“85 90”和“80 85 90 95”两组,后者是最长的连续上升成绩序列(相等不算做连续上升),应该输出后者的长度4。
输入描述:
输入的第一行是序列的长度N(1<=N<=100)。第二行给出序列中的N个整数,这些整数的取值范围都在0到100。
输出描述:
最长的成绩连续上升的长度(相等不算做连续上升)。
样例输入: | 样例输出: |
10 85 90 80 85 90 95 95 80 75 75 | 4 |
#include <iostream>
#include <vector>
using namespace std;
int main() {
int N;
cin >> N;
vector<int> scores(N);
for (int i = 0; i < N; ++i) {
cin >> scores[i];
}
int maxLength = 1; // 最长连续上升序列的初始长度为1
int currentLength = 1; // 当前连续上升序列的长度
for (int i = 1; i < N; ++i) {
if (scores[i] > scores[i - 1]) {
// 如果当前成绩大于前一个成绩,则当前连续上升序列的长度加1
++currentLength;
maxLength = max(maxLength, currentLength);
}
else {
// 否则,重置当前连续上升序列的长度为1
currentLength = 1;
}
}
cout << maxLength << endl; // 输出最长连续上升序列的长度
return 0;
}