求一个数列中,递增的最长的子序列(不要求连续)的长度。
输出所求的结果。
提示
AC代码如下:
#include<stdio.h> #include<stdlib.h> #include<string.h> int ai[1001]; int dp[1001]; int mmax=0; int num=0; int main() { int n,i,j; memset(dp,0,sizeof(dp)); scanf("%d",&n); for( i=1;i<=n;i++) scanf("%d",&ai[i]); for(i=1;i<=n;i++) { dp[i]=1; for(j=1;j<i;j++) { if(ai[i]>ai[j]&&dp[i]<dp[j]+1) { dp[i]=dp[j]+1; } } if(dp[i]>dp[mmax]) { mmax=i; } } printf("%d\n",dp[mmax]); }