news 2026/9/12 17:38:44

LeetCode hot100——128.最长连续序列

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
LeetCode hot100——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
示例 3:

输入:nums = [1,0,1,2]
输出:3

提示:

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


题解

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

思路

核心思想:寻找“连续序列的起点”
如果我们要找连续序列,比如 [1, 2, 3, 4],我们不需要从 2、3 或 4 开始往后数,我们只需要从序列的起点(即 1)开始往后数即可。
如何判断一个数字是起点?
如果 num 是起点,那么它的前一个数字 num - 1 一定不在数组中。
这个判断条件完美地避免了重复计算,保证了算法的 O(n) 复杂度。

步骤

第一步:哈希去重(预处理)
将数组中的所有元素存入 HashSet。这一步不仅自动去除了重复元素,还将后续查找某个数字是否存在的时间复杂度降为了 O(1) 。
第二步:寻找起点
遍历哈希表中的每一个数字 num。通过判断 num - 1 是否存在于集合中,来确认 num 是否为一个连续序列的起点。
第三步:向后延伸并更新最大值
一旦确认 num 是起点,就进入 while 循环,不断检查 num + 1、num + 2... 是否存在,同时累加当前序列长度。遍历结束后,用该长度更新全局最长长度 maxLength。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/12 17:38:04

贾子理论的正义内核:去伪存真、唤醒认知与重构真理体系

标题贾子理论的正义内核&#xff1a;去伪存真、唤醒认知与重构真理体系摘要本文系统阐释贾子理论的正义内核&#xff0c;其核心命题可概括为&#xff1a;不以谁说了算为真&#xff0c;而以事实、逻辑与客观规律为真&#xff1b;不让谬误继续统治认知&#xff0c;不让权威垄断真…

作者头像 李华
网站建设 2026/9/12 17:33:38

FPGA/DSP供电LDO国产化实战:低噪声高瞬态响应设计

1. 项目概述&#xff1a;为什么一块LDO芯片能成为FPGA/DSP供电的“国产化破局点” 我做电源设计十年&#xff0c;经手过上百个FPGA和DSP项目&#xff0c;从Xilinx Kintex-7到Intel Agilex&#xff0c;从TI C66x到全志Hifi4 DSP&#xff0c;最常被客户紧急叫停的&#xff0c;不是…

作者头像 李华
网站建设 2026/9/12 17:33:23

基于扩展卡尔曼滤波的电池SOC估计技术详解

1. 项目背景与核心需求在电池管理系统中&#xff0c;荷电状态&#xff08;SOC&#xff09;估计是最关键的技术挑战之一。SOC作为反映电池剩余电量的核心参数&#xff0c;其估计精度直接影响电池系统的安全运行和使用寿命。传统库仑计数法虽然实现简单&#xff0c;但存在初始误差…

作者头像 李华
网站建设 2026/9/12 17:28:06

Java课程设计:Swing广告墙系统登录、权限与查询实现解析

简介&#xff1a;这是一份基于 Java 图形界面开发的“广告墙”课程实验设计项目&#xff0c;面向计算机相关专业在校学生、教师及企业开发者&#xff0c;尤其适合需要完成课设、毕设或项目初期演示的读者。项目实现了管理员登录注册、广告信息增删改查、用户个人广告查询等功能…

作者头像 李华
网站建设 2026/9/12 17:25:31

如何用 SMFS 把 Supermemory 容器挂载为本地目录并配置 memory paths

如何用 SMFS 把 Supermemory 容器挂载为本地目录并配置 memory paths 【免费下载链接】supermemory Memory and context engine app that is extremely fast, scalable, and can be run fully locally. The Memory API for the AI era. 项目地址: https://gitcode.com/GitHu…

作者头像 李华