思路
连续的,就比较简单了。我自己的贪心做法如下
var findLengthOfLCIS = function(nums) {// 这个比较简单,贪心法let count =1let result =1for(let i=0;i<nums.length-1;i++){if(nums[i]<nums[i+1]){count++}else{count =1}result =Math.max(result,count)}return result};
- 时间复杂度:O(n)
-
动态规划
var findLengthOfLCIS = function(nums) { // 这个比较简单,贪心法 let dp =new Array(nums.length).fill(1) let result =1 for(let i=1;i<nums.length;i++){ if(nums[i]>nums[i-1]){ dp[i] =dp[i-1]+1 } result =Math.max(result,dp[i]) } return result }; 时间复杂度:O(n)
- 空间复杂度:O(n)
连续与不连续的区别
概括来说:不连续递增子序列的跟前0-i 个状态有关,连续递增的子序列只跟前一个状态有关
