//最长上升子序列 #include<stdio.h> #include<memory.h> #define MAX_N 1000 int b[MAX_N+10]; int aMaxLen[MAX_N+10]; int main() { int N; int i=0,j=0; scanf("%d",&N); for(i=1;i<=N;i++) scanf("%d",&b[i]); aMaxLen[1]=1; for(i=2;i<=N;i++){ int nTmp=0; for(j=1;j<i;j++){ if(b[i]>b[j]){ if(nTmp<aMaxLen[j]) nTmp=aMaxLen[j]; } } aMaxLen[i]=nTmp+1; } int nMax=-1; for(i=1;i<=N;i++) if(nMax<aMaxLen[i]) nMax=aMaxLen[i]; printf("%d ",nMax); return 0; }