#include<cstdio>
#include<cstring>
#define maxn 1001
using namespace std;
int N;//數據個數
int a[maxn];//儲存數據
int dp[maxn];//dp[i]表示以i結束的最長上升子序列的最大長度 初始爲1
int main()
{
while(~scanf("%d",&N))
{
for(int i=1;i<=N;i++)
scanf("%d",&a[i]);
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]<dp[j]+1)//如果a[i]可以作爲a[j]的後續 並且 作爲後續之後可以使 序列變長
{
dp[i]=dp[j]+1;
}
}
if(ans<dp[i])ans=dp[i];
}
printf("%d\n",ans);
}
return 0;
}
POJ 2533 最長上升子序列長度的求解 DP實現
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.