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

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

相关推荐
桦说编程1 小时前
从 ForkJoinPool 的 Compensate 看并发框架的线程补偿思想
java·后端·源码阅读
躺平大鹅3 小时前
Java面向对象入门(类与对象,新手秒懂)
java
HXhlx3 小时前
CART决策树基本原理
算法·机器学习
Wect3 小时前
LeetCode 210. 课程表 II 题解:Kahn算法+DFS 双解法精讲
前端·算法·typescript
初次攀爬者3 小时前
RocketMQ在Spring Boot上的基础使用
java·spring boot·rocketmq
花花无缺4 小时前
搞懂@Autowired 与@Resuorce
java·spring boot·后端
颜酱4 小时前
单调队列:滑动窗口极值问题的最优解(通用模板版)
javascript·后端·算法
Derek_Smart5 小时前
从一次 OOM 事故说起:打造生产级的 JVM 健康检查组件
java·jvm·spring boot
NE_STOP6 小时前
MyBatis-mybatis入门与增删改查
java