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;
    }
相关推荐
無限進步D几秒前
高精度算法 cpp
c++·笔记·算法·入门
Holen&&Beer2 分钟前
Spring-Profile与部署说明
java·后端·spring
棉花糖超人3 分钟前
【操作系统】三、线程
java·开发语言·操作系统
qyzm9 分钟前
AtCoder Beginner Contest 449
数据结构·python·算法·贪心算法
liuyao_xianhui9 分钟前
优选算法_判断字符是否唯一_C++
java·开发语言·数据结构·c++·算法·链表
Barkamin10 分钟前
希尔排序的简单实现
数据结构·算法·排序算法
Eward-an11 分钟前
CKA/CKS认证通关复盘:实验环境搭建避坑指南,版本雷区+高效练习全解析
算法
代码雕刻家13 分钟前
3.4.Maven-idea集成-导入Maven项目
java·maven·intellij-idea
Flying pigs~~16 分钟前
自然语言处理(NLP)开胃小菜
人工智能·算法·自然语言处理·大模型·文本分析处理
Yupureki16 分钟前
《C++实战项目-高并发内存池》7.大块内存的申请与释放
服务器·c语言·开发语言·c++·算法·哈希算法