思路:同样我们设dp[i]为以下标i为结尾的数组的连续递增的子序列长度,而本题要求的最长递增子序列是连续的,也就是说dp[i+1]只由dp[i]推导而出,不用在推导的时候考虑0-i的情况,这样等同与在上一题的基础上简化了遍历,只用一层for循环即可,在遍历的时候用dp[i]来推导dp[i+1],其余部分都和上一题相同
class Solution {
public int findLengthOfLCIS(int[] nums) {
if (nums.length <= 1) return nums.length;
int[] dp = new int[nums.length];
Arrays.fill(dp,1);
int res = 0;
for (int i = 1; i < nums.length; i++){
if (nums[i] > nums[i-1]){
dp[i] = dp[i-1] + 1;
}
if (dp[i] > res) res = dp[i];
}
return res;
}
}