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;
    }
相关推荐
伍一51几秒前
星云ERP免编译安装包分享,可直接运行,附完整程序包下载地址
java
逆境不可逃5 分钟前
LeetCode 热题 100 之 279. 完全平方数 322. 零钱兑换 139. 单词拆分 300. 最长递增子序列
java·算法·leetcode·职场和发展
shamalee6 分钟前
Spring Security 新版本配置
java·后端·spring
美式请加冰8 分钟前
位运算符的介绍和使用
数据结构·算法
tankeven10 分钟前
HJ127 小红的双生串
c++·算法
Fcy64812 分钟前
与链表有关的算法题
数据结构·算法·链表
KerwinChou_CN14 分钟前
LangGraph 快速入门
服务器·网络·算法
不光头强14 分钟前
Java中的异常
java·开发语言
毕设源码-赖学姐14 分钟前
【开题答辩全过程】以 高校资源共享平台的设计与实现 为例,包含答辩的问题和答案
java
shamalee17 分钟前
MS SQL Server partition by 函数实战二 编排考场人员
java·服务器·开发语言