【HashSet】 128. 最长连续序列

发布时间:2024年01月18日

128. 最长连续序列

解题思路

HashSet存储元素: 使用HashSet存储数组元素,以实现O(1)时间复杂度的元素存在性检查。

遍历数组: 遍历整数数组中的每个元素。

判断连续序列起点: 对于当前元素,检查是否存在比它小1的元素。如果存在,说明当前元素不是一个连续序列的起点,跳过当前迭代。

寻找整个连续序列: 如果当前元素是连续序列的起点,使用循环递增 num 直到找到不在数组中的元素,确定整个连续序列的长度。

更新最大长度: 在寻找每个连续序列的过程中,比较当前序列的长度与之前找到的最大长度,更新最大长度。

返回结果: 返回找到的最长连续数字序列的长度。

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

        int res = 0;

        for(int num:nums){
            if(set.contains(num - 1)){
                continue;// 说明有比他还要小的元素
            }else{
                int count = 0;
                while(set.contains(num++)){
                    count++;// 寻找所有的连续数字
                }

                res = res>count ? res:count;
            }
        }
        return res;

    }
}

文章来源:https://blog.csdn.net/qq_44653420/article/details/135671089
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。