E03 线性DP 最长上升子序列
视频链接:https://www.bilibili.com/video/BV1KK4y1e7t7/
#include <iostream> #include <cstring> #include <algorithm> using namespace std; const int N=1010; int n, a[N]; int f[N]; int main(){ cin>>n; for(int i=1; i<=n; i++) cin>>a[i]; for(int i=1; i<=n; i++) f[i]=1; for(int i=1; i<=n; i++) for(int j=1; j<i; j++) if(a[j]<a[i]) f[i]=max(f[i],f[j]+1); int res=0; for(int i=1; i<=n; i++) res=max(res,f[i]); cout<<res; }