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;
    }
相关推荐
林三的日常几秒前
SpringBoot + Druid SQL Parser 解析表名、字段名(纯Java,最佳方案)
java·spring boot·sql
deviant-ART5 分钟前
java stream 的 findFirst 和 findAny 踩坑点
java·开发语言·后端
Sag_ever11 分钟前
时间复杂度与空间复杂度超详细入门讲解
算法
青衫码上行11 分钟前
【从零开始学习JVM】字符串常量池
java·jvm·学习·面试·string
念越13 分钟前
算法每日一题 Day03|快慢双指针解决快乐树问题
算法·力扣
ZPC821016 分钟前
MoveGroup 规划轨迹 → 直接交给 MoveIt2 Servo 执行
人工智能·算法·计算机视觉·机器人
历程里程碑18 分钟前
55 Linux epoll高效IO实战指南
java·linux·服务器·开发语言·前端·javascript·c++
何包蛋H20 分钟前
Java并发编程核心:JUC、AQS、CAS 完全指南
java·开发语言
鱼鳞_21 分钟前
Java学习笔记_Day35(多线程)
java·笔记·学习
木易 士心24 分钟前
MyBatis Plus 核心功能与用法
java·后端·mybatis