0128.最长连续序列
0128.最长连续序列看到这个题目的第一眼想到的自然是排序算法直接排序遍历但是复杂度达到了o(nlogn)不符合题目所要求的o(n)。对于n复杂度的算法我第一个想到的是使用哈希map直接遍历一遍数组对于每个数字查找当前数字的「前驱连续长度」即num-1 所在序列的长度和后继长度。如果当前数字未被计算过这是由于可能出现重复数字那么就可以合并前后续列长度并且更新左右边界长度。看到这里大家可能会有疑问为什么只需要更新左右边界长度呢这是由于每次遇到新的数字时只有边界的数字会参与计算中间数字对应哈希值不会被使用到所以无需更新且一定小于边界值不会影响答案。classSolution{public:intlongestConsecutive(vectorintnums){intans0;unordered_mapint,intmap;for(intnum:nums){// 1. 查找当前数字的「前驱连续长度」num-1 所在序列的长度intprevmap.find(num-1)map.end()?0:map[num-1];// 2. 查找当前数字的「后继连续长度」num1 所在序列的长度intsufmap.find(num1)map.end()?0:map[num1];// 3. 仅当数字未被处理过时避免重复计算if(map.find(num)map.end()){// 4. 合并前后序列当前数字的序列长度 前驱 后继 自身1map[num]prevsuf1;// 5. 更新序列「左边界」的长度关键map[num-prev]map[num];// 6. 更新序列「右边界」的长度关键map[numsuf]map[num];ansmax(ans,map[num]);}}returnans;}};‍接下来如果要理解如何从第一个哈希表记录长度的算法转化为题解的哈希集合找连续序列起点的算法核心是换一种思路解决「最长连续序列」问题—— 从「合并序列」转向「找序列起点并统计长度」。第一个算法的核心是「动态合并」遍历每个数字时合并其前后的连续序列并用哈希表记录序列长度仅更新边界。但这个思路有两个「不直观」的点需要处理「重复数字」map.find(num) map.end()要维护「序列边界的长度」逻辑上需要理解「为什么只更新边界」我们可以思考有没有更直接的方式——既然是「连续序列」那每个序列都有唯一的「起点」即没有前驱数​x-1​​的数只要找到所有起点再逐个统计以该起点开头的连续序列长度即可。这就是第二个算法的核心思路大部分是这种思路就不过多赘述了。‍

相关新闻

Flutter 三方库 string_to_hex 的鸿蒙化适配指南 - 掌控编码标识资产、精密文本治理实战、鸿蒙级映射专家

Flutter 三方库 string_to_hex 的鸿蒙化适配指南 - 掌控编码标识资产、精密文本治理实战、鸿蒙级映射专家

欢迎加入开源鸿蒙跨平台社区:https://openharmonycrossplatform.csdn.net Flutter 三方库 string_to_hex 的鸿蒙化适配指南 - 掌控编码标识资产、精密文本治理实战、鸿蒙级映射专家 在鸿蒙跨平台应用执行高级文本资产管理与多维 Hex 编码资产指控(如构…

2026/5/17 1:59:20 阅读更多 →
边缘计算×AUV:解锁深海探索的“实时智能”密码

边缘计算×AUV:解锁深海探索的“实时智能”密码

文章目录边缘计算AUV:解锁深海探索的“实时智能”密码一、先搞懂:边缘计算到底是什么?二、AUV的“痛点”,边缘计算来解决三、边缘计算在AUV中的核心应用场景1. 实时导航与智能避障:让AUV“看得准、反应快”2. 数据本地…

2026/5/17 9:27:11 阅读更多 →
在线教育系统源码-亿坊免费源码|10分钟搭建教育直播平台!

在线教育系统源码-亿坊免费源码|10分钟搭建教育直播平台!

想研究在线教育系统的人们有福了,最近亿坊开源项目——亿坊教育平台源码给很多平台都帮了大忙。它把直播、考试、分销这三件套全都打包好了,而且是免费的! 今天就分享一下,如何用这套源码,在很短的时间内快速搭建一个属…

2026/5/17 8:40:53 阅读更多 →

最新新闻

卡梅德生物技术快报| KM13 辅助噬菌体的天然 VHH 噬菌体文库全套构建流程与数据验证

卡梅德生物技术快报| KM13 辅助噬菌体的天然 VHH 噬菌体文库全套构建流程与数据验证

一、提出问题:实验室自建纳米抗体文库常遇四大工程化痛点 食品检测实验室自主构建 VHH 噬菌体文库时,普遍存在工程化落地难题:其一,普通单轮 PCR 扩增 VHH 基因存在大量缺失,文库多样性不足;其二&#xff…

2026/7/6 2:51:55 阅读更多 →
Variance Reduction with Baseline 补充 - 加基线使得方差降低

Variance Reduction with Baseline 补充 - 加基线使得方差降低

什么叫基线 基线就是一个只和当前状态s有关、和动作a无关的数值 b(s),用来做 “参考平均分”假设某状态s平均长期收益 b(s)10 某条轨迹 G_t18:A_t18-108>0,动作比平均更好,加大该动作概率 某条轨迹 G_t3:A_t3-10-7…

2026/7/6 2:51:55 阅读更多 →
MP1584 降压电源 PCB 布局 5 大要点:实测 SW 节点尖峰降低 60%

MP1584 降压电源 PCB 布局 5 大要点:实测 SW 节点尖峰降低 60%

MP1584降压电源PCB布局实战:5大核心技巧让SW节点尖峰直降60%作为一名长期奋战在电源设计一线的工程师,我深知PCB布局对开关电源性能的决定性影响。今天我们就以MP1584这款经典降压芯片为例,通过实测数据揭示那些手册上不会告诉你的布局奥秘。…

2026/7/6 2:49:55 阅读更多 →
非线性字符串数据结构串讲

非线性字符串数据结构串讲

书接去年,今天作业不想写了,滚过来写总结。顺便保留我刚略微学会的串串。 声明:作者由于水平不高,所以有些定理不能严谨证明,所以若是初学者请移步别处。 1.Trie树 定义 Trie树又叫字典树,是非常显然的…

2026/7/6 2:47:55 阅读更多 →
Lemos知识库-AI+知识图谱驱动智能脑进化

Lemos知识库-AI+知识图谱驱动智能脑进化

Lemos 通过其“AI知识图谱”双引擎,将传统的静态知识库转变为动态智能脑,其核心转变体现在知识单元、组织逻辑、构建方式、交互模式、演化能力及最终目标六个层面。 转变维度传统静态知识库 (以Ima为例)Lemos 动态智能脑实现转变的关键机制知识单元原子…

2026/7/6 2:47:55 阅读更多 →
2026年实用指南3个复习笔记使用场景选择标准帮你精准适配需求

2026年实用指南3个复习笔记使用场景选择标准帮你精准适配需求

"这篇就是给只会把复习笔记当抄板书草稿本的学生,整理了2026年实用的3个复习笔记使用场景选择标准,精准对应学生最常用的课堂复习、论文调研、知识自测三类需求,解决大家只会用基础功能、记了白记复习低效的痛点,每一个标准都…

2026/7/6 2:47:54 阅读更多 →

日新闻

H2 与 MySQL 单元测试兼容性:5 个关键 SQL 语句差异与规避方案

H2 与 MySQL 单元测试兼容性:5 个关键 SQL 语句差异与规避方案

H2与MySQL单元测试兼容性:5个关键SQL语句差异与规避方案1. 单元测试中的数据库兼容性挑战在Java开发领域,单元测试是保证代码质量的重要环节。当应用涉及数据库操作时,测试环境的搭建往往成为开发者的痛点。H2数据库因其轻量级、内存模式和快…

2026/7/6 0:01:17 阅读更多 →
Windows任务栏终极清理指南:用RBTray一键隐藏窗口到系统托盘

Windows任务栏终极清理指南:用RBTray一键隐藏窗口到系统托盘

Windows任务栏终极清理指南:用RBTray一键隐藏窗口到系统托盘 【免费下载链接】rbtray A fork of RBTray from http://sourceforge.net/p/rbtray/code/. 项目地址: https://gitcode.com/gh_mirrors/rb/rbtray 你是否厌倦了Windows任务栏上密密麻麻的图标&…

2026/7/6 0:01:17 阅读更多 →
Visual C++ 运行时库一键安装终极指南:告别DLL缺失烦恼

Visual C++ 运行时库一键安装终极指南:告别DLL缺失烦恼

Visual C 运行时库一键安装终极指南:告别DLL缺失烦恼 【免费下载链接】vcredist AIO Repack for latest Microsoft Visual C Redistributable Runtimes 项目地址: https://gitcode.com/gh_mirrors/vc/vcredist 你是否曾经遇到过这样的情况:下载了…

2026/7/6 0:05:19 阅读更多 →

周新闻

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容 【免费下载链接】BiliTools A cross-platform bilibili toolbox. 跨平台哔哩哔哩工具箱,支持下载视频、番剧等等各类资源 项目地址: https://gitcode.com/GitHub_Trending/bilit/BiliTools …

2026/7/5 0:03:34 阅读更多 →
威胁模型全解析:从新手入门到实战应用,助你构建安全产品!

威胁模型全解析:从新手入门到实战应用,助你构建安全产品!

威胁模型的陌生现状在忙碌疲惫的一天里,参与了关于混合后量子密码学的讨论,应付端点攻击找茬的人,还参与留言板讨论后,发现“威胁模型”对多数人仍是陌生概念,且多被当作时髦用语。有趣的相关画作有一幅由 Embyr 创作的…

2026/7/5 0:03:34 阅读更多 →
渗透测试入门指南:从零基础到实战环境搭建

渗透测试入门指南:从零基础到实战环境搭建

1. 从“看热闹”到“入门”:我理解的渗透测试到底是什么?每次看到新闻里说某个大公司的数据被“黑”了,或者某个网站被攻击导致服务瘫痪,你是不是和我一样,心里会冒出两个念头:一是“这黑客真厉害”&#x…

2026/7/5 0:07:38 阅读更多 →

月新闻