LeetCode【128】最长连续序列

题目:

分析:

1、最长连续序列的长度为 y-x+1,如1-4:4-1+1 = 4

2、不要被这里的On误导,不敢使用双层循环

3、只要找到最小的数值,并由此开始计算,不产生重复计算,则为On

代码:

java 复制代码
public int longestConsecutive(int[] nums) {
        Set<Integer> set = new HashSet<>();
        for (int num : nums) {
            set.add(num);
        }

        int max = 0;
        for (int i = 0; i < nums.length; i++) {
            if (!set.contains(nums[i] - 1)) {
                int y = nums[i] + 1;
                while (set.contains(y)) {
                    y++;
                }
                max = Math.max(max, y-nums[i]);
            }
        }

        return max;
    }
相关推荐
妮妮喔妮4 分钟前
JAVA反射的介绍(优缺点)
java·开发语言
i***48619 分钟前
Redis重大版本整理(Redis2.6-Redis7.0)
java·数据库·redis
YQ_ZJH17 分钟前
Redisson 看门狗机制详解
java·redis
那我掉的头发算什么21 分钟前
【javaEE】多线程——线程安全进阶☆☆☆
java·jvm·安全·java-ee·intellij-idea
悟空CRM服务29 分钟前
我用一条命令部署了完整CRM系统!
java·人工智能·开源·开源软件
组合缺一30 分钟前
Solon AI 开发学习 - 1导引
java·人工智能·学习·ai·openai·solon
百***490032 分钟前
基于SpringBoot和PostGIS的各省与地级市空间距离分析
java·spring boot·spring
普通网友33 分钟前
分布式锁服务实现
开发语言·c++·算法
普通网友34 分钟前
移动语义在容器中的应用
开发语言·c++·算法
Bony-39 分钟前
Articulation Point(割点)算法详解
算法·深度优先