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

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

相关推荐
wenlonglanying1 分钟前
Windows安装Rust环境(详细教程)
开发语言·windows·rust
CQU_JIAKE17 分钟前
3.21【A】
开发语言·php
CoovallyAIHub28 分钟前
Pipecat:构建实时语音 AI Agent 的开源编排框架,500ms 级端到端延迟
深度学习·算法·计算机视觉
今儿敲了吗28 分钟前
python基础学习笔记第九章——模块、包
开发语言·python
灰色小旋风31 分钟前
力扣13 罗马数字转整数
数据结构·c++·算法·leetcode
xyq202434 分钟前
TypeScript 命名空间
开发语言
2301_8101609536 分钟前
C++与物联网开发
开发语言·c++·算法
sxlishaobin39 分钟前
Java I/O 模型详解:BIO、NIO、AIO
java·开发语言·nio
cm65432040 分钟前
基于C++的操作系统开发
开发语言·c++·算法
ArturiaZ42 分钟前
【day57】
开发语言·c++·算法