题目地址
这是一个最长上升子串(注意不是子序列)的问题
从头到尾扫一遍,设循环控制变量为i
for i in [2,n]:
if(arr[i-1]<arr[i]):
max0=max(++sum,max0);
else:
sum=1;
#include <stdio.h>
int main(){
int maxDay=0,pre,today,n,sum=1;
//从第二天算起,maxDay也就是我们要的答案
//pre代表前一天多少度
//n代表有多少天
//sum代表统计当前这个段连续涨了几天
scanf("%d",&n);
scanf("%d",&pre);//先把第一天的拿来当前一天的
for(int i=2;i<=n;i++){//从第二天开始,最后一天结束
scanf("%d",&today);
if(today>pre){//如果今天的比前一天的高
sum++;
}
else{//如果没有 ,重新统计
if(sum>maxDay){//先看一下这个sum要不要
maxDay=sum;
}
sum=1;//sum归一
}
pre=today;//今日已成往昔
}
if(sum>maxDay){
maxDay=sum;//边界情况,如果他是在最末尾一段一直在连续增长,那么这个是没被统计的
}
printf("%d",maxDay);
return 0;
}