poj2533(最长递增子序列模板题)

1.考虑只有一个数字的情况。
2.好像数据中没有输入0个数字的情况。

#include<stdio.h>
#include<stdio.h>
#include<string.h>
#include<iostream>
using namespace std;
#define MAX 1010
int a[MAX];
int dp[MAX];
int n;
int LIS()
{
    
    
    int max_=1;
    for(int i=2;i<=n;i++)
    {
    
    
        dp[i]=1;
        for(int j=1;j<i;j++)
        {
    
    
            if(a[i]>a[j]&&dp[i]<dp[j]+1)
            {
    
    
                dp[i]=dp[j]+1;
                if(max_<dp[i])
                {
    
    
                    max_=dp[i];
                }
            }
        }
    }
    return max_;
}
int main()
{
    
    
    dp[1]=1;
    while(scanf("%d",&n)==1)
    {
    
    
        for(int i=1;i<=n;i++)
        {
    
    
            scanf("%d",&a[i]);
        }
        printf("%d\n",LIS());
    }
    return 0;
}

猜你喜欢

转载自blog.csdn.net/mingjiweixiao/article/details/113524181