子序列经典题目
思路
思路写在代码里中,总结来说就是求了两次最大
- dp[i] 是从0到i-1中最长的子序列dp[j]+1
- 最终结果是0-i的dp中最长的那个dp
var lengthOfLIS = function(nums) {let dp =new Array(nums.length).fill(1) //自身就是一个长度为1的序列let result =1for(let i=1;i<nums.length;i++){for(let j=0;j<i;j++){if(nums[i]>nums[j]){// dp[i] 是从0到i-1中最长的子序列+1dp[i] =Math.max(dp[i],dp[j]+1)}}// 最终结果是0-i的dp中最长的那个dpresult =Math.max(result,dp[i])}return result};
