動規最長上升子序列
阿新 • • 發佈:2019-01-30
#include<iostream>
#include<algorithm>
using namespace std;
#define maxx 101
int a[maxx];
int n;
int maxlen[maxx];
int main()
{
int i,j;
cin>>n;
for(i=1;i<=n;++i){
cin>>a[i];//陣列a存數
maxlen[i]=1;//邊界條件,每個數最長子序列至少為一
}
for(i=2;i<=n;++i)
for (j=1;j<i;++j)
{
if(a[i]>a[j])
{
maxlen[i]=max(maxlen[i],maxlen[j]+1);//存以第i個為終點的最長的個數
}
}
cout<<*max_element(maxlen+1,maxlen+n+1);//輸出陣列中最大的
return 0;
}