最长连续序列set

64 阅读1分钟
// 最长连续序列 set

// 输入:nums = [100,4,200,1,3,2]

// 输出:4

// 解释:最长数字连续序列是 [1, 2, 3, 4]。它的长度为 4。

public static int longestConsecutive(int[] nums) {

    Set<Integer> set=new HashSet<Integer>();

    for(int num:nums) {

        set.add(num);

    }

    int longest=0;

    //双层循环便利每一个值到最后一个值

    for(int num:set) {

        //跳过统计过的值

        if(!set.contains(num-1)) {

            int cur=num;

            int curlen=1;

            //每一个值到最后都更新最大长度

            while(set.contains(cur+1)) {

                cur+=1;

                curlen+=1;

            }

            longest=Math.max(longest, curlen);

        }

    }

    return longest;

}