128. 最长连续序列 leetcode-hot100

61 阅读1分钟

image.png

方法:排序

image.png

class Solution {
    public int longestConsecutive(int[] nums) {
        if(nums.length==0){
            return 0;
        }
        
        int index=1; //记录每个连续序列长度
        Arrays.sort(nums); //数组排序
        ArrayList<Integer> list = new ArrayList<>();
        for (int i = 0; i < nums.length-1; i++) {
           //当数组元素连续,index+1
           if(nums[i]+1==nums[i+1]){
                index++;
            }else if(nums[i]==nums[i+1]){ //重复元素跳过此次循环
                continue;
            }else {
            
                //记录此次连续长度,并重置index,用于记录下一个连续序列
                list.add(index);
                index=1;
            }
        }
        //找出最大index
        for(int k:list){
            if(index<k){
                index=k;
            }
        }
        return index;
    }
}