最长上升子序列

/*第一次学习自己写的,更好的版本在动态规划一文中*/
#include<iostream> using namespace std; int a[10005],vis[10005]; int main(){ int n;cin>>n; int maxx=0; int max; //dp[n]=dp[n-1]+n; //2 5 3 4 1 7 6 //1 2 2 3 1 4 4 for(int i=0;i<n;i++){ cin>>a[i]; max=0; int maxi; for(int j=0;j<i;j++){ if(a[i]>a[j]&&vis[j]>max) max=vis[j]; } vis[i]=max+1; if(maxx<vis[i]) maxx=vis[i]; } /*for(int i=0;i<n;i++) cout<<vis[i]<<" "; cout<<endl;*/ cout<<maxx<<endl; }

 

posted @ 2018-11-30 20:26  莫莫君不恋爱  阅读(126)  评论(0编辑  收藏  举报