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;
    }
相关推荐
JavaEdge.1 分钟前
IDEA卡死没反应的全部解决方案
java·ide·intellij-idea
高山上有一只小老虎7 分钟前
使用Memory Analyzer (MAT)分析内存溢出
java·jvm
嘴贱欠吻!19 分钟前
JavaSE基础知识
java·开发语言
逝水如流年轻往返染尘25 分钟前
Java输入输出
java·开发语言
Alsn8627 分钟前
29.Java中常见加解密算法的基本实现
java·开发语言·算法
沉默王二27 分钟前
TRAE+Gemini,成为我解读 Agent 微服项目的最佳工具
java·后端·程序员
多则惑少则明29 分钟前
SpringBoot3整合knife4j(swagger3)
java·spring boot·swagger
星月昭铭29 分钟前
Spring Boot写一个/v1/chat/completions接口给Cherry Studio流式调用
java·spring boot·后端·ai
独自破碎E29 分钟前
什么是Java的多态特性?
java·开发语言
1001101_QIA29 分钟前
OpenMP学习笔记
算法