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;
    }
相关推荐
殷紫川8 分钟前
深入拆解 Fork/Join 框架:核心原理、分治模型与参数调优实战
java
不爱吃炸鸡柳9 分钟前
算法复杂度从入门到精通:时间与空间复杂度全解析
开发语言·c++·算法
yaaakaaang12 分钟前
十六、解释器模式
java·解释器模式
若阳安好13 分钟前
【提效小工具】IN SQL、UPDATE SQL、INSERT SQL
java·数据库·sql
拳里剑气14 分钟前
C++算法:二分查找
c++·算法·二分查找·学习方法
乐之者v21 分钟前
20多个表,每个都有userId 和其他几个属性,要根据userId把他们全部汇总,如何处理?
java·mysql
黎阳之光26 分钟前
去标签化定位时代:黎阳之光自研技术,可见即可定位,无感亦能解算
大数据·人工智能·算法·安全·数字孪生
故事和你9134 分钟前
洛谷-算法1-7-搜索2
数据结构·c++·算法·leetcode·深度优先·动态规划·图论
惊鸿若梦一书生36 分钟前
《Python 高阶教程》003|变量背后不是盒子:名字、对象与引用的本质
java·jvm·python