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

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

相关推荐
百***06014 分钟前
SpringBoot的@Scheduled和@Schedules有什么区别
java·spring boot·spring
喵了几个咪11 分钟前
使用Bazel构建你的Kratos微服务
java·运维·微服务
咖啡の猫30 分钟前
Python的自述
开发语言·python
千寻技术帮35 分钟前
50022_基于微信小程序同城维修系统
java·mysql·微信小程序·小程序·同城维修
九年义务漏网鲨鱼38 分钟前
【大模型面经】千问系列专题面经
人工智能·深度学习·算法·大模型·强化学习
野蛮人6号1 小时前
黑马八股笔记
java
Charles_go1 小时前
41、C#什么是单例设计模式
java·设计模式·c#
夏霞1 小时前
c# ASP.NET Core SignalR 客户端与服务端自动重连配置指南
开发语言·c#·asp.net
皮皮林5511 小时前
别再只会 mvn install 了!深入拆解 Maven 插件核心原理
java·maven
源码之家1 小时前
机器学习:基于大数据二手房房价预测与分析系统 可视化 线性回归预测算法 Django框架 链家网站 二手房 计算机毕业设计✅
大数据·算法·机器学习·数据分析·spark·线性回归·推荐算法