大家都说这是一个经典的题目当然不容错过。
这是在[kuangbin带你飞]的简单Dp专题提交的。
代码:
#include<iostream> #include<cstdio> #include<algorithm> using namespace std; int dp[1010]; int a[1010]; int N; int main(){ while(cin>>N && N) { for(int i=1;i<=N;i++) scanf("%d",&a[i]); dp[0]=0;dp[1]=1; int ans=0; for(int i=1;i<=N;i++){ dp[i]=1; for(int j=1;j<i;j++) if(a[i]>a[j]) dp[i]=max(dp[i],dp[j]+1); ans=max(ans,dp[i]); } cout<<ans<<endl; } return 0; }