Skip to content

300最长上升子序列

code

javascript
/**
 * @param {number[]} nums
 * @return {number}
 */
var lengthOfLIS = function(nums) {
    let max = 1;
    let dp = new Array(nums.length).fill(1);
    dp[0] = 1;
    // dp[i] 是以dp[i-1]之前的 + 1
    for(let i = 1; i < nums.length; i++){
        for(let j = i - 1; j >= 0; j--){
            if(nums[i] > nums[j]){
                dp[i] = Math.max(dp[i], dp[j] + 1);
                max = Math.max(max, dp[i]);
            }
        }
    }
    return max; 
};

总结

  1. 双dp能写,但是这个无论是难度还是频率都是极高价值问题,要搞一搞