最长上升子序列LIS

#include<bits/stdc++.h>
#define maxn 30
using namespace std;

int n,f[maxn],a[maxn];
int ans=0;

void LIS(){
    for(int i=1;i<=n;i++){
        f[i]=1;
        for(int j=1;j<i;j++)
            if(a[j]<a[i])
                f[i]=max(f[i],f[j]+1);
    }
    for(int i=1;i<=n;i++)
        ans=max(ans,f[i]);
}


int main(){
    cin>>n;
    for(int i=1;i<=n;i++) cin>>a[i];
    LIS();
    cout<<ans<<endl;
    return 0;
} 

 

 

posted @ 2021-02-03 23:57  DReamLion  阅读(48)  评论(0编辑  收藏  举报