思路
连续的,就比较简单了。我自己的贪心做法如下
var findLengthOfLCIS = function(nums) {
// 这个比较简单,贪心法
let count =1
let result =1
for(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 个状态有关,连续递增的子序列只跟前一个状态有关