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;
    }
相关推荐
Jinkxs3 分钟前
Java 部署:Jenkins Pipeline 构建 Java 项目(自动化)
java·spring boot
Jinkxs7 分钟前
Java 部署:滚动更新(K8s RollingUpdate 策略)
java·开发语言·kubernetes
a8a3028 分钟前
Spring Boot 3.3.4 升级导致 Logback 之前回滚策略配置不兼容问题解决
java·spring boot·logback
ab15151710 分钟前
3.17二刷基础112 118 完成进阶52
数据结构·算法
jfqqqqq13 分钟前
win11下intelliJ idea的shift + F6无效
java·ide·intellij-idea
xu_ws14 分钟前
Spring-ai项目-deepseek-7-Function Calling(智能客服)
java·人工智能·spring
逝水如流年轻往返染尘27 分钟前
JAVA中的抽象类
java·开发语言
旖-旎29 分钟前
二分查找(1)
c++·算法·二分查找·力扣·双指针
困死,根本不会33 分钟前
【C 语言】指针学习笔记:从底层原理到实战应用
c语言·开发语言·笔记·学习·算法
小范自学编程40 分钟前
算法训练营 Day38 - 动态规划part07
算法·动态规划