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;
    }
相关推荐
callJJ6 分钟前
JVM 类加载机制详解——从 .class 文件到对象诞生的完整旅程
java·jvm·类加载·双亲委派模型
wayz1113 分钟前
Day 9 :随机森林调参与时间序列交叉验证
算法·随机森林·机器学习
️是7818 分钟前
信息奥赛一本通—编程启蒙(3371:【例64.2】 生日相同)
开发语言·c++·算法
ZPC821018 分钟前
ROS2 快过UDP的方法
python·算法·机器人
Kiling_070419 分钟前
Java Math类核心用法全解析
java·开发语言
踏着七彩祥云的小丑19 分钟前
开发中用到的注解
java
小梦爱安全22 分钟前
Ansible剧本1
java·网络·ansible
周末也要写八哥26 分钟前
最长递增子序列典型应用题目详解
数据结构·算法
pupudawang1 小时前
Spring Boot 热部署
java·spring boot·后端
我登哥MVP1 小时前
【SpringMVC笔记】 - 9 - 异常处理器
java·spring boot·spring·servlet·tomcat·maven