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;
    }
相关推荐
a***59263 分钟前
SpringBoot实现异步调用的方法
java·spring boot·spring
即将进化成人机4 分钟前
Spring Boot配置文件
java·开发语言·intellij-idea
龙智DevSecOps解决方案7 分钟前
Java开发基础:什么是Spring Boot?一文了解其优势、对比以及如何通过Perforce JRebel实现高效开发
java·开发语言·spring boot·jrebel·perforce·java开发
一直都在5729 分钟前
手写tomcat(1):Socket
java·tomcat
PPPPickup12 分钟前
easychat---创建,获取,获取详细,退群,解散,添加与移除群组
java·开发语言·后端·maven
luod12 分钟前
SpringBoot自动初始化数据
java·spring boot·spring
牛顿没有错13 分钟前
lombok中@Data、@AllArgsConstructor、@NoArgsConstructor不生效
java·spring boot·spring·intellij-idea
CodeWizard~38 分钟前
线性筛法求解欧拉函数以及欧拉反演
算法
南部余额38 分钟前
深入理解 Spring Boot:自动化配置类与 FactoryBean 的异同与协作
java·spring boot·自动化
45288655上山打老虎41 分钟前
右值引用和移动语义
算法