hot 100 128. 最长连续序列

最长连续序列


问题描述

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

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


样例输入

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

样例输出

cpp 复制代码
4

评测用例规模与约定

0 <= nums.length <= 10^5

-10^9 <= numsi <= 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星)

⭐️⭐️

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

相关推荐
打工仔折腾 AI9 分钟前
让时序预测真正参与决策:TimechoAI 工程化落地与管线设计实践
人工智能·后端·python·算法·机器学习·性能优化
Light6014 分钟前
企业自建 AI 智能体,成本差 8 倍还是 46 倍?
java·人工智能·算法·知识图谱·rag·ai agent 上下文·token 成本
曹牧24 分钟前
VS: Visual Studio 里把未包含的文件加进项目2
linux·运维·算法
重生之小比特42 分钟前
【算法拾光】滑动窗口|长度最小的子数组 + 无重复字符的最长子串
算法
weixin_307779131 小时前
C++代码实现MATLAB中的fitnlm函数功能
开发语言·c++·算法·matlab
雪落漂泊1 小时前
C++算法:双指针篇(下)
数据结构·c++·算法
生态学者10 小时前
Global Change Biology | 森林越“步调一致”,反而越怕干旱?树木生长与叶片活动的同步之谜
大数据·人工智能·算法·r语言·微信公众平台
lsswear11 小时前
Agent 框架新手入门与实战部署指南
大数据·人工智能·算法
学逆向的11 小时前
C 循环结构的执行效率分析
c语言·开发语言·数据结构·网络安全