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;
    }
相关推荐
君顾113 分钟前
从0到1课后辅导管理系统开发实战:需求文档、架构设计全复盘
java·开发语言
NeoGressAI外贸数字化19 分钟前
外贸建站:新手怎么自建独立站完整指南
java·人工智能
前端 贾公子21 分钟前
第09章:上下文与记忆 (4)
java·服务器·前端
HanhahnaH27 分钟前
各数据结构操作的时间复杂度汇总
数据结构·算法
wjjzhbb33 分钟前
中小团队敏捷转型:Scrum还是看板?
java·maven·scrum
Yzzz-F39 分钟前
CF2023D
c++·算法·dp
GodSure091442 分钟前
Java单一职责原则SRP详解
java·python·单一职责原则
探数API小喇叭1 小时前
基站查询 API 怎么用?LAC、CELLID 参数详解与实战】
java·开发语言·api·基站定位
小小帅呀1 小时前
学习 VLA 第6天:SWIN VIT算法原理以及复现
学习·算法
catino1 小时前
spring-IOC、DI
java·spring·rpc