最长上升子序列

来源:互联网 发布:淘宝什么是客单价 编辑:程序博客网 时间:2024/06/05 02:49
//有一个长为n的数列a0,a1,a2,...,an-1.请求出整个序列中最长的上升子序列的长度。//上升子序列指的是对于任意的i<j都满足ai<aj的子序列#include<cstdio>#include<iostream>#include<cstring>using namespace std;const int maxn=1314;int n,dp[maxn],a[maxn];int main(){    while(cin>>n)    {        memset(dp,0,sizeof(dp));        memset(a,0,sizeof(a));        for(int i=0; i<n; i++)            cin>>a[i];        //dp[i]表示长为i+1的数列的最长上升子序列长度        for(int i=0; i<n; i++)            dp[i]=1;        for(int i=0; i<n; i++)            for(int j=0; j<i; j++)                if(a[j]<a[i])                    dp[i]=max(dp[j]+1,dp[i]);        cout<<dp[n-1];    }    return 0;}
0 0
原创粉丝点击