题解 | #最长上升子序列(一)#

最长上升子序列(一)

https://www.nowcoder.com/practice/5164f38b67f846fb8699e9352695cd2f

#include <vector>
class Solution {
public:
    int LIS(vector<int>& arr) {
        //先初始化一个dp数组代表到该点中最长递增子序列的长度
        //dp中的每个元素初始化为1
        //依次进行比较
        int n = arr.size();
        if(n == 1)return 1;
        if(n == 0) return 0;
        vector<int> dp(n, 1);
        int m = 1;
        for(int i = 1; i < n; i++){
            for(int j = 0; j < i; j++){
                if(arr[i] > arr[j]) {
                    dp[i] = max(dp[i], dp[j] + 1);
                }
            }
            if(dp[i] > m)m = dp[i];
        }
        return m;
    }
};

全部评论

相关推荐

路过的咸蛋超人也想拿offer:你是我见过最美的牛客女孩
点赞 评论 收藏
分享
牛客840099999号:没见过这样的大厂,至少头部的肯定没有
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务