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星)

⭐️⭐️

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

相关推荐
谭欣辰5 分钟前
C++ 排列组合完整指南
开发语言·c++·算法
代码中介商19 分钟前
银行管理系统的业务血肉 —— 流程、状态机、输入校验与持久化(下篇)
c语言·算法
foundbug9991 小时前
自适应滤除直达波干扰的MATLAB实现
开发语言·算法·matlab
MegaDataFlowers2 小时前
206.反转链表
数据结构·链表
CN-Dust3 小时前
【C++】while语句例题专题
数据结构·c++·算法
灵智实验室3 小时前
PX4位置速度估计技术详解(四):LPE 激光雷达高度融合的实现错误
算法·无人机·px 4
CQU_JIAKE3 小时前
【A】3742,3387,并查集
算法
gihigo19983 小时前
CHAN时延估计算法(二维/三维定位实现)
算法
freexyn3 小时前
Matlab自学笔记七十六:表达式的展开、因式分解、化简、合并同类项
笔记·算法·matlab
样例过了就是过了4 小时前
LeetCode热题 不同路径
c++·算法·leetcode·动态规划