题解 | #Redraiment的走法#
Redraiment的走法
https://www.nowcoder.com/practice/24e6243b9f0446b081b1d6d32f2aa3aa
#include <iostream> using namespace std; int main() { int n; cin>>n; int a[n]; int dp[n]; for(int i=0;i<n;i++){ cin>>a[i]; dp[i]=1; } for(int i=1;i<=n;i++){ for(int j=i-1;j>=0;j--){ if(a[j]<a[i]){ dp[i]=max(dp[i],dp[j]+1); //状态转移 } } } int ans=0; for(int i=0;i<n;i++){ if(dp[i]>ans)ans=dp[i]; } cout<<ans; } // 64 位输出请用 printf("%lld")