思路
dp(s, i): 下标从0~i-1的严格递增子序列长度
dp(s, i) = max(dp(s, j))+1,前提是j<i,且nums[j]<nums[i]
代码
/**
* @param {number[]} nums
* @return {number}
*/
var lengthOfLIS = function(nums) {
// dp(s, i): 下标从0~i-1的严格递增子序列长度
let n = nums.length;
let dp = new Array(n).fill(1);
// 外层循环给dp数组赋值
for(let i=1; i<n; i++){
// 内层循环找出"比nums[i]小"的0~i-1中的最大dp值
for(let j=0; j<i; j++){
if(nums[j]<nums[i]){
dp[i] = Math.max(dp[i], dp[j]+1)
}
}
}
return Math.max(...dp)
};