最长上升子序列
给定一个无序的整数数组,找到其中最长上升子序列的长度。
示例:
输入: [10,9,2,5,3,7,101,18]
输出: 4
解释: 最长的上升子序列是 [2,3,7,101],它的长度是 4。
var lengthOfLIS = function(nums) {
if(!nums.length) return 0
let dp = []
dp[0]=1 // dp[i]是指从0开始到以i为结尾的最长上升子序列长度
for(let i =1;i<nums.length;i++){
dp[i]=1
for(let j = 0;j<i;j++){ // 从0到i开始遍历
if(nums[j]<nums[i]){ // 如果num[j]< num[i] 那么dp[i]的值是dp[i]和dp[j]+1间的最大值
dp[i] = Math.max(dp[i],dp[j]+1)
}
}
}
return Math.max(...dp)
};