题解 | #最长上升子序列(一)#
最长上升子序列(一)
https://www.nowcoder.com/practice/5f65ccbb025240bd8458eb6479c2612e
#include <iostream> #include <cstring> using namespace std; int dp[1010]; int main() { int n; cin >> n; int arr[n]; for(int i = 1;i<=n;i++){ cin >> arr[i]; dp[i] = 1; } long long res = 0; for(int i = 1;i<=n;i++){ for(int j = 1;j<i;j++){ if(arr[i]>arr[j]){ dp[i] = max(dp[i],dp[j]+1); } } if(dp[i]>res) res = dp[i]; } cout << res; return 0; } // 64 位输出请用 printf("%lld")