题解 | #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;
}

华为题库题解 文章被收录于专栏

牛客华为题库的题解

全部评论

相关推荐

评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务