hot 100 128. 最长连续序列

最长连续序列


问题描述

给定一个未排序的整数数组 nums ,找出数字连续的最长序列(不要求序列元素在原数组中连续)的长度。

请你设计并实现时间复杂度为 O(n) 的算法解决此问题。


样例输入

cpp 复制代码
nums = [100,4,200,1,3,2]

样例输出

cpp 复制代码
4

评测用例规模与约定

0 <= nums.length <= 10^5

-10^9 <= nums[i] <= 10^9


解析

找到数组中最长的连续序列长度,我们采用set的方法进行去重,然后检查数组每一个数的顺序前一个数是否在集合中,有就循环检查直到没有,更新最大长度即可。


参考程序

java 复制代码
class Solution {
    public int longestConsecutive(int[] nums) {
       Set<Integer>num_set=new HashSet<Integer>();
       for(int num:nums){
        num_set.add(num);
       }
       int l=0;
       for(int num:num_set){
        if(!num_set.contains(num-1)){
            int cur=num;
            int curs=1;
            while(num_set.contains(cur+1)){
                cur+=1;
                curs+=1;
            }
            l=Math.max(l,curs);
        } 
       }
       return l;
    }
}

难度等级

⭐️(1~10星)

⭐️⭐️

以个人刷题整理为目的,如若侵权,请联系删除~

相关推荐
小李子呢021117 小时前
前端八股6---v-model双向绑定
前端·javascript·算法
XH华17 小时前
数据结构第九章:树的学习(下)
数据结构·学习
2301_8227032018 小时前
Flutter 框架跨平台鸿蒙开发 - 创意声音合成器应用
算法·flutter·华为·harmonyos·鸿蒙
cmpxr_18 小时前
【C】数组名、函数名的特殊
c语言·算法
KAU的云实验台18 小时前
【算法精解】AIR期刊算法IAGWO:引入速度概念与逆多元二次权重,可应对高维/工程问题(附Matlab源码)
开发语言·算法·matlab
会编程的土豆18 小时前
【数据结构与算法】再次全面了解LCS底层
开发语言·数据结构·c++·算法
大熊背19 小时前
如何利用Lv值实现三级降帧
算法·自动曝光·lv·isppipeline
大尚来也20 小时前
驾驭并发:.NET多线程编程的挑战与破局之道
java·前端·算法
向阳而生,一路生花20 小时前
深入浅出 JDK7 HashMap 源码分析
算法·哈希算法