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;
    }
相关推荐
Never_Satisfied3 分钟前
在c#中,获取文件的大小
java·开发语言·c#
铸人3 分钟前
再论自然数全加和 - 欧拉伽马常数4
算法
蜂蜜黄油呀土豆5 分钟前
浅拷贝与深拷贝:实现与应用解析
java·浅拷贝·深拷贝·对象复制
014-code8 分钟前
Spring Boot 集成 Neo4j 图数据库实战教程
java·数据库·neo4j
时艰.11 分钟前
分布式 ID 服务实战
java·分布式
七夜zippoe14 分钟前
分布式系统弹性设计实战:Hystrix与Sentinel熔断降级深度解析
java·hystrix·sentinel·aws·分布式系统
prince_zxill26 分钟前
探索Nautilus Trader:高性能算法交易平台与事件驱动回测引擎的全面指南
算法
廋到被风吹走29 分钟前
设计原则深度解析:高内聚低耦合、模块边界与服务拆分
java
进击的荆棘32 分钟前
算法——二分查找
c++·算法·leetcode