题目背景
统计天数
题目描述
炎热的夏日,KC非常的不爽。他宁可忍受北极的寒冷,也不愿忍受厦门的夏天。最近,他开始研究天气的变化。他希望用研究的结果预测未来的天气。
经历千辛万苦,他收集了连续N(1<=N<=10^7)天的最高气温数据。
现在,他想知道最高气温一直上升的最长连续天数。
输入输出格式
输入格式:
*1行:一个整数N。1<=N<=10^7
*2行:N个空格隔开的整数,表示连续N天的最高气温。0<=最高气温<=10^9。
输出格式:
*1行:一个整数,表示最高气温一直上升的最长连续天数。
输入输出样例
输入样例#1: 复制
10
1 2 3 2 4 5 6 8 5 9
输出样例#1: 复制
5
说明
时间限制1s 内存限制128MB
题解
寻找最长上升连续子序列即可!
#include <iostream>
#include <cstdio>
using namespace std;
int a[10000001] = {0};//全局变量
int main()
{
int N;
cin >> N;
int i;
for(i = 0; i < N; i++){
cin >> a[i];
}
int max = 0;//最长连续天数
int flag = 0;//存储i
int temp = 0;//每段连续天数
for(i = 0; i < N; i++){
flag = i;
while(a[flag] < a[flag + 1]){//气温上升
temp += 1;
flag += 1;
}
if(temp > max){
max = temp;
}
temp = 0;
i = flag;//重置i
}
cout << max + 1 << endl;
return 0;
}