AcWing 895. 最长上升子序列
原题链接
简单
作者:
YMYS
,
2024-12-16 22:01:20
,
所有人可见
,
阅读 6
复习
固定模型,多练多背
/*
* @Author: YMYS
* @Date: 2024-02-25 21:38:22
* @LastEditTime: 2024-12-16 21:59:32
* @FilePath: \VScode-C&C++-Coding\z_demo\easy.cpp
* @URL:https://www.acwing.com/problem/content/897/
* @Description:
*/
#include<bits/stdc++.h>
using namespace std;
const int N = 1010;
// int T;
// void solve(){
// }
//dp[i]表示以a[i]结尾的最长子序列的长度的值
int n, f[N], dp[N];
int main()
{
#ifdef ABC
freopen("D:\\daily_Coding\\VScode-C&C++-Coding\\in.in", "r", stdin);
freopen("D:\\daily_Coding\\VScode-C&C++-Coding\\out.out", "w", stdout);
#endif
// cin>>T;
// while(T--){
// solve();
// }
cin>>n;
for(int i=1;i<=n;i++) cin>>f[i];
for(int i=1;i<=n;i++){
dp[i] = 1;
for(int j=1;j<i;j++){
if(f[i] > f[j]){
dp[i] = max(dp[i], dp[j]+1);
}
}
}
//遍历dp,找出最大值
int res = 1;
for(int i=1;i<=n;i++){
res = max(res,dp[i]);
}
cout<<res<<endl;
return 0;
}