最长连续序列 Java

java 复制代码
class Solution {
    public int longestConsecutive(int[] nums) {
        Set<Integer> set = new HashSet();
        for (int i : nums) set.add(i);
        int max = 0;
        for (int num : set) {
            if (set.contains(num - 1)) continue; // 上一个数存在,说明当前数不是连续片段的开头
            int cur = num; // 当前数
            int curLen = 0; // 当前长度
            // HashSet加速查找下一个数是否存在,更新最大长度
            while (set.contains(cur++)) {
                curLen++;
                max = Math.max(max, curLen);
            }
        }
        return max;
    }
}

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

相关推荐
W23035765739 小时前
经典算法:打家劫舍(动态规划 + 回溯求最优解)C++ 超详细解析
c++·算法·动态规划
Dev7z9 小时前
基于改进小波阈值的sEMG信号降噪与手势识别系统设计与实现
算法·手势识别·改进小波阈值·semg·信号降噪
凤山老林11 小时前
04-Java JDK, JRE和JVM
java·开发语言·jvm
灵感__idea16 小时前
Hello 算法:贪心的世界
前端·javascript·算法
小成2023032026517 小时前
Linux高级02
linux·开发语言
camellias_17 小时前
【无标题】
java·tomcat
知行合一。。。17 小时前
Python--04--数据容器(总结)
开发语言·python
咸鱼2.017 小时前
【java入门到放弃】需要背诵
java·开发语言
ZK_H17 小时前
嵌入式c语言——关键字其6
c语言·开发语言·计算机网络·面试·职场和发展
澈20717 小时前
深入浅出C++滑动窗口算法:原理、实现与实战应用详解
数据结构·c++·算法