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;
    }
相关推荐
学IT的周星星4 分钟前
java常见面试题
java·开发语言
子夜江寒4 分钟前
逻辑森林与贝叶斯算法简介
算法·机器学习
小妖66611 分钟前
力扣(LeetCode)- 93. 复原 IP 地址(JavaScript)
javascript·tcp/ip·leetcode
shoubepatien15 分钟前
JAVA -- 12
java·后端·intellij-idea
Mr.朱鹏17 分钟前
大模型入门学习路径(Java开发者版)上
java·开发语言·spring boot·spring·大模型·llm·transformer
古月฿22 分钟前
大学生素质测评系统设计与实现
java·vue.js·redis·mysql·spring·毕业设计
一雨方知深秋23 分钟前
程序流程控制
java·for循环·while循环·if分支·switch分支·dowhile循环·嵌套循环
xu_yule26 分钟前
算法基础-背包问题(01背包问题)
数据结构·c++·算法·01背包
cike_y27 分钟前
JSP标签&JSTL标签&EL表达式
java·开发语言·jsp
秃然想通30 分钟前
Java继承详解:从零开始理解“父子关系”编程
java·开发语言