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

⭐️⭐️

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

相关推荐
菜菜的顾清寒几秒前
力扣Hot100(23)反转链表
算法·leetcode·链表
Michelle80231 分钟前
基于随机森林的乳腺癌肿瘤分类实验
算法·随机森林·分类
Yvonne爱编码5 分钟前
机器学习---聚类四大算法完整实验教程(层次 / K-Means/GMM/ 谱聚类)
算法·机器学习·聚类
東隅已逝,桑榆非晚6 分钟前
C语言内存函数
c语言·开发语言·笔记·算法
深蓝电商API10 分钟前
爬虫代理IP智能调度:基于响应速度的实时评分算法
爬虫·算法
汉克老师11 分钟前
GESP5级C++考试语法知识(十七、二分算法提高篇(一))
c++·算法·二分算法·gesp5级·gesp五级·二分算法易错点
灵智实验室11 分钟前
PX4状态估计技术EKF2详解(五):EKF2 故障检测、重置与鲁棒性——从单实例到多实例仲裁
算法·无人机·px 4
programhelp_16 分钟前
Roblox Coding OA 面经分享|题量不小,但整体更偏工程思维
人工智能·算法·面试
周末也要写八哥17 分钟前
机器学习评价指标之平均概念
人工智能·算法·机器学习
运筹vivo@22 分钟前
33. 搜索旋转排序数组(leetcode每日一题)
c++·算法