最长上升连续子序列
1 #define INF 100099 2 int n,m,a[99999],s[99999],ans; 3 void dfs(int x,int y) 4 { 5 if(x==n+1) return; 6 else{ 7 if(a[x-1]<a[x]) s[x]=s[x-1]+1,dfs(x+1,s[x]); 8 else s[x]=1,dfs(x+1,s[x]); 9 } 10 return ; 11 } 12 int main() 13 { 14 scanf("%d",&n); 15 for(int i=1;i<=n;i++) 16 scanf("%d",&a[i]); 17 dfs(1,0) ; 18 for(int i=1;i<=n;i++) 19 ans=max(ans,s[i]); 20 cout<<ans; 21 return 0; 22 } 23 24 //更快的的算法 25 #define INF 100099 26 int n,m,a[99999],s[99999],ans; 27 int main() 28 { 29 scanf("%d",&n); 30 for(int i=1;i<=n;i++) 31 scanf("%d",&a[i]); 32 for(int i=1;i<=n;i++) 33 if(a[i-1]<a[i]) s[i]=s[i-1]+1; 34 else s[i]=1; 35 for(int i=1;i<=n;i++) 36 ans=max(ans,s[i]); 37 cout<<ans; 38 return 0; 39 }