原文链接:https://leetcode-cn.com/problems/longest-continuous-increasing-subsequence/
解题思路
过程:
count 为当前元素峰值,ans为最大峰值
初始化 count = 1
从 0 位置开始遍历,遍历时根据前后元素状态判断是否递增,递增则 count++,递减则 count=1
如果 count>ans,则更新 ans
直到循环结束
时间复杂度:O(N)
class Solution {
public int findLengthOfLCIS(int[] nums) {
if(nums.length <= 1)
return nums.length;
int ans = 1;
int count = 1;
for(int i=0;i<nums.length-1;i++) {
if(nums[i+1] > nums[i]) {
count++;
} else {
count = 1;
}
ans = count > ans ? count : ans;
}
return ans;
}
}
or
class Solution674 {
public static void main(String[] args){
int[] nums={2,2,2,2};
int len=findLengthOfLCIS(nums);
System.out.println(len);
}
public static int findLengthOfLCIS(int[] nums) {
if(nums.length==0||nums.length==1){
return nums.length;
}
int maxL=0;
int maxR=0;
int l=0;
int r=0;
int maxCount=1;
int count=1;
for(int i=0;i<nums.length-1;i++){
if(nums[i+1]>nums[i]){
count++;
r=i+1;
}else{
count=1;
l=i+1;
r=i+1;
}
if(count>maxCount){
maxCount=count;
maxL=l;
maxR=r;
}
}
System.out.println(maxL+"~"+maxR);
return maxCount;
}
}