Skip to content

Latest commit

 

History

History
46 lines (38 loc) · 1.3 KB

随笔-最长连续递增序列.md

File metadata and controls

46 lines (38 loc) · 1.3 KB

题目:给定一个未经排序的整数数组,找到最长且连续的的递增序列。

示例 1:

输入: [1,3,5,4,7] 输出: 3 解释: 最长连续递增序列是 [1,3,5], 长度为3。 尽管 [1,3,5,7] 也是升序的子序列, 但它不是连续的,因为5和7在原数组里被4隔开。 示例 2:

输入: [2,2,2,2,2] 输出: 1 解释: 最长连续递增序列是 [2], 长度为1。 注意:数组长度不会超过10000。

思路:找最长连续子串,那么只需要相邻的两个元素进行判断,然后进行计数,如果左边大于右边,那么得到max,n归1,重新开始计数。

代码实现:

class Solution {
    public int findLengthOfLCIS(int[] nums) {
        if(nums.length==0){
            return 0;
        }
        int n=1;
        int max=1;
        
        for(int i=1; i<nums.length; i++){
            if(nums[i-1]<nums[i]){
                n++;
            }else{
               max= max > n ? max:n;
               if(max>nums.length-i){ 
             //剩下的长度没有max大 那么肯定不回有比他长的子串了
                   break;
               } 
               n=1;
            }
        }
        return  max > n ? max:n; 
        //nnums数组整个都是顺序递增子串,那么n就是最大的
    }
}