首页 > 其他分享 >【集合】LeetCode 128. 最长连续序列

【集合】LeetCode 128. 最长连续序列

时间:2023-01-06 11:25:42浏览次数:57  
标签:int longestStreak 序列 num numSet 128 currentStreak LeetCode

题目链接

128. 最长连续序列

思路

题目要求找连续序列,且时间复杂度读要求 O(n),可以使用集合进行实现。

代码

class Solution{
    public int longestConsecutive(int[] nums){
        Set<Integer> numSet = new HashSet<>();
        for(int num : nums){
            numSet.add(num);
        }

        int longestStreak = 0;
        for(int num : numSet){
            if(!numSet.contains(num - 1)){
                int currentNum = num;
                int currentStreak = 1;

                while(numSet.contains(currentNum + 1)){
                    currentNum++;
                    currentStreak++;
                }

                longestStreak = Math.max(longestStreak, currentStreak);
            }
        }

        return longestStreak;
    }
}

标签:int,longestStreak,序列,num,numSet,128,currentStreak,LeetCode
From: https://www.cnblogs.com/shixuanliu/p/17029892.html

相关文章