本文共 527 字,大约阅读时间需要 1 分钟。
给出n个数,然后输出这n个数中的最长子序列长度。
#include#include #include #include #include using namespace std;const int maxn=100005;int a[maxn];int dp[maxn]; //存储第i个数之前的最长上升子序列长度int main(){ int n; scanf("%d",&n); for(int i=1;i<=n;i++) { scanf("%d",&a[i]); dp[i]=1; //初始状态,每个数的最长子序列都是只有自己,为1 } for(int i=2;i<=n;i++) { for(int j=1;j a[j]) { dp[i]=max(dp[i],dp[j]+1); } } } int ans=1; for(int i=1;i<=n;i++) ans=max(ans,dp[i]); printf("%d\n",ans); return 0;}
转载地址:http://gizci.baihongyu.com/