题解 | #Redraiment的走法#
Redraiment的走法
https://www.nowcoder.com/practice/24e6243b9f0446b081b1d6d32f2aa3aa
#include <bits/stdc++.h> using namespace std; int main(){ int n = 0; while(cin >> n){ vector<int> nums(n, 0); for(int i = 0; i < n; i++){ int num = 0; cin >> num; nums[i] = num; } vector<int> dp(n, 1); //dp[i]表示以nums[i]为结尾的严格上升子序列的长度(初始化为1) int res = 1; for(int i = 0; i < nums.size(); i++){ for(int j = 0; j < i; j++){ //遍历前面的 if(nums[j] < nums[i]){ //确保严格上升 dp[i] = max(dp[i], dp[j] + 1); // } } res = max(res, dp[i]); //维护最大值 } cout << res << endl; } return 0; }
华为题库题解 文章被收录于专栏
牛客华为题库的题解