最长连续序列 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;
    }
}

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

相关推荐
luming-023 分钟前
报错解决:IDEA终端输出和CMD终端输出Maven版本不一致
java·缓存·bug·intellij-idea
非凡ghost3 分钟前
MPC-QT视频播放器(基于Qt框架播放器)
开发语言·windows·qt·音视频·软件需求
转基因4 分钟前
C++的IO流
开发语言·c++
MM_MS6 分钟前
Halcon控制语句
java·大数据·前端·数据库·人工智能·算法·视觉检测
一碗绿豆汤7 分钟前
Java语言概述和开发环境-1
java·开发语言
愈努力俞幸运10 分钟前
rust安装
开发语言·后端·rust
mit6.82419 分钟前
山脉二分找中值|子集型回溯
算法
小画家~21 分钟前
第四十六: channel 高级使用
java·前端·数据库
乃瞻衡宇28 分钟前
Agent Skills 完全指南:让你的 AI Agent 拥有超能力
算法
mit6.82431 分钟前
pair<int, TreeNode*> dfs
算法