当前位置: 首页 > news >正文

LeetCode 128: 最长连续序列

LeetCode 128: 最长连续序列

题目:

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

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

示例 1:

输入:nums = [100,4,200,1,3,2]
输出:4
解释:最长数字连续序列是 [1, 2, 3, 4]。它的长度为 4。

示例 2:

输入:nums = [0,3,7,2,5,8,4,6,0,1]
输出:9

提示:

  • 0 <= nums.length <= 105
  • -109 <= nums[i] <= 109

解题思路

通过哈希集合存储整数,以快速判断是否存在相邻数字,从而高效地找出数组中的最长连续序列

1: 首先将数组中的所有元素放入到 HashSet 中,去除掉重复元素。并用于后续常数级别的查询操作。

2: 遍历整个HashSet,首先判断当前元素-1 的值是否在 HashSet中,如果不存在,才有可能是一个连续的序列。

3: 如果第一个元素-1 的值 不在 HahSet 中,则记录当前的值,循环查询当前值+1 的值是否在 HashSet中。如果存在,则连续序列的长度+1。

4: 最后计算连续序列的最大值。

解题代码

class Solution {public int longestConsecutive(int[] nums) {Set<Integer> numSet = new HashSet<Integer>();for (int i : nums) {numSet.add(i);}int longStreak = 0;for (int num : numSet ) {if (!numSet.contains(num -1)) {int currentNum = num;int currentStreak = 1;while (numSet.contains(currentNum + 1 )) {currentNum +=1;currentStreak +=1;}longStreak = Math.max(longStreak,currentStreak);}}return longStreak;}
}

以上就是最长连续序列的解题过程。除了上面的解题思路,官方网站上也有其他大神的解题思路。

传送链接如下:

https://leetcode.cn/problems/longest-consecutive-sequence/solutions/?envType=study-plan-v2&envId=top-100-liked

http://www.lryc.cn/news/533544.html

相关文章:

  • 大语言模型需要的可观测性数据的关联方式
  • 【韩顺平linux】部分上课笔记整理
  • python调用pc的语音借口
  • 【Golang学习之旅】Golang 内存管理与 GC 机制详解
  • Kamailio 各个功能的共同点、不同点及应用场景
  • Linux(CentOS)安装 Nginx
  • string 与 wstring 的字符编码
  • C#面试常考随笔14: 方法如何传递不定数量的参数?params关键字怎么使用?
  • 开发一款类似《王者荣耀》的游戏是一个复杂的系统工程,涉及多个领域的知识和技术。以下是从多个角度详细阐述如何开发的思维。
  • VMware下Linux和macOS安装VSCode一些总结
  • aspectFill(填充目标区域的同时保持图像的原有宽高比 (aspect ratio)图像不会被拉伸或压缩变形
  • 我的年度写作计划
  • DeepSeek与llama本地部署(含WebUI)
  • SOA(面向服务架构)全面解析
  • PyQt6/PySide6 的 QDialog 类
  • mes系统对工业数字化转型起到重要作用,它的实际应用有哪些
  • Qt:项目文件解析
  • 【学术投稿】第五届计算机网络安全与软件工程(CNSSE 2025)
  • Java 大视界 -- Java 大数据在智能供应链中的应用与优化(76)
  • WEB攻防-文件下载文件读取文件删除目录遍历目录穿越
  • 部署open webui 调用ollama启动的deepseek
  • 理解推理型大语言模型
  • 告别人工检测!casaim自动化三维激光扫描
  • 使用云效解决docker官方镜像拉取不到的问题
  • Linux TCP 编程详解与实例
  • 认识O(NlogN)的排序
  • [手机Linux] onepluse6T 系统重新分区
  • 对ReentrantLock的公平性进行测试
  • LabVIEW之TDMS文件
  • DeepSeek 实现原理探析