【哈希】LC 128.最长连续序列
文章目录前言一、题目1、原题链接2、题目描述二、个人思路整理1、思路分析2、解题代码三、知识风暴前言本专栏文章为《LeetCode 热题 100》的刷题题解相关内容如有侵权立即删除。一、题目1、原题链接128.最长连续序列2、题目描述二、个人思路整理1、思路分析思路参考最长连续序列、两个关键优化O(n) 时间复杂度Python/Java/C/C/Go/JS/Rust、https://leetcode.cn/problems/longest-consecutive-sequence/solutions/276931/zui-chang-lian-xu-xu-lie-by-leetcode-solution/comments/2283513/此题复杂度限制在O(n)因此不能使用排序快排复杂度为O(nlogn)超出题目复杂度要求所以需要换一种思路核心就是快速判断数组中的每个元素是否可能是某一个连续序列的起点开头元素快速判断想到利用哈希表如果可能是则进行遍历查找后续递增元素是否存在若一定不是则直接跳过后续步骤进行数组中下一个元素的判断。如何进行判断数组中的元素是否可能是最长连续序列的开头元素呢先说不可能的情况当遍历到的元素值为i但数组中存在i-1那么说明当前元素就没有必要进行后续递增序列的计算因为以i-1开头的序列一定要比以i开头的序列要长不论这个以i-1开头的连续序列长度是先与以i开头的连续序列长度计算的还是迟于它最终当前以i开头计算出的连续序列的最大长度都会被更新所以这种情况没有必要再对以i开头的连续序列长度的计算排除上述不可能情况其他情况都有可能咱们需要依次计算以其他元素开头的连续序列的长度然后最终得到最大的长度。由于原数组可能存在重复元素所以我们需要去重后再进行计算以减低算法复杂度。2、解题代码classSolution{public:intlongestConsecutive(vectorintnums){unordered_setints;intmax_len0;//记录全局最大长度for(autonum:nums){s.insert(num);}for(autoi:s){if(s.count(i-1))continue;//如果i-1存在说明i不是起点跳过计算//如果找到一个起点计算以这个起点开始的序列长度inttmpi1;intcur_len1;//依次在哈希表中查找递增的元素是否存在存在则当前序列长度加一同时继续判断下一个递增元素while(s.count(tmp)){cur_len;tmp;}max_lenmax(max_len,cur_len);}returnmax_len;}};三、知识风暴空间换时间利用哈希表O(1)的查询效率代替暴力循环去匹配的过程

相关新闻

松木桩批发哪家强?实地对比三甲榜单

松木桩批发哪家强?实地对比三甲榜单

在工程建设、园林绿化、河道治理等领域,杉木桩以其独特的耐腐性、柔韧性和适中的价格,成为许多项目的首选材料。然而,当面对市场上琳琅满目的“松木桩批发”信息时,不少采购者发现,价格差异大、品质参差不齐&#xff0…

2026/7/18 21:08:34阅读更多 →
2026 AI陪伴软件排行榜:5款热门AI陪伴产品真实体验对比

2026 AI陪伴软件排行榜:5款热门AI陪伴产品真实体验对比

AI陪伴软件哪个好?2026年值得体验的AI陪伴产品推荐 过去几年,AI 更多被用于办公、写作、编程等生产力场景。 但随着 AI 能力不断提升,一个新的方向正在快速发展:AI陪伴。 越来越多人开始尝试 AI 陪伴软件,希望拥有一个…

2026/7/18 21:08:34阅读更多 →
Java 全栈开发实战教程 03 04 05

Java 全栈开发实战教程 03 04 05

Java 全栈开发实战教程 03 下载课件 通过网盘分享的文件:Java全栈开发教程课程资料 链接: https://pan.baidu.com/s/1Hh5TXojnzcEJG2W1qU6DEw?pwdak19 提取码: ak19 –来自百度网盘超级会员v6的分享Java 全栈开发实战教程 04 安装 JDKJava 全栈开发实战教程 05 CMD…

2026/7/18 21:08:34阅读更多 →
Java大厂面经:Spring Cloud微服务+MCP+Agentic RAG三连问,水货程序员谢飞机大型翻车现场

Java大厂面经:Spring Cloud微服务+MCP+Agentic RAG三连问,水货程序员谢飞机大型翻车现场

Java大厂面经:Spring Cloud微服务MCPAgentic RAG三连问,水货程序员谢飞机大型翻车现场🎬 前言江湖传闻,有一号人物,姓谢,名飞机,Java圈内人称「八股文朗诵艺术家」——简单问题倒背如流&#xf…

2026/7/18 22:16:52阅读更多 →
鸿蒙 ArkTS 实战:Live Stream Script Helper 从智能助手到保存闭环完整解析

鸿蒙 ArkTS 实战:Live Stream Script Helper 从智能助手到保存闭环完整解析

鸿蒙 ArkTS 实战:Live Stream Script Helper 从智能助手到保存闭环完整解析 前言 Live Stream Script Helper 是一个面向 直播脚本助手 的鸿蒙 ArkTS 单页工具。它把主题输入、数量统计、辅助开关、备注和保存状态组织到一个移动端工作台中。 项目服务于 围绕商品…

2026/7/18 22:16:51阅读更多 →
HeyGem2.0(Duix-Avatar)本地数字人整合包技术部署与使用完整教程

HeyGem2.0(Duix-Avatar)本地数字人整合包技术部署与使用完整教程

前言 HeyGem(项目现更名 Duix-Avatar)是硅基智能开源 AI 数字人项目,可本地离线完成数字人形象、音色克隆与口播视频生成。原版开源项目依赖 Docker、WSL2 环境部署,国内网络环境下易出现拉取镜像失败、环境配置复杂等问题。社区…

2026/7/18 22:16:51阅读更多 →
HarmonyOS ArkUI Badge 徽标与 Chip 标签:消息红点、数字徽标与可选中标签

HarmonyOS ArkUI Badge 徽标与 Chip 标签:消息红点、数字徽标与可选中标签

系列:鸿蒙 HarmonyOS 6.1 新特性实战 第 39 篇 Badge(徽标)用于在图标或按钮上附加消息计数、红点提醒或文字标记;Chip(标签)则用于展示可操作的关键词标签。本篇演示 Badge 的数字、文字、位置三个维度&a…

2026/7/18 22:16:51阅读更多 →
HarmonyOS ArkUI Select 与 TextPicker 选择器:下拉、滚筒与省市联动

HarmonyOS ArkUI Select 与 TextPicker 选择器:下拉、滚筒与省市联动

系列:鸿蒙 HarmonyOS 6.1 新特性实战 第 38 篇 Select(下拉选择器)和 TextPicker(滚筒选择器)是两种互补的选择组件:Select 适合选项多、界面紧凑的场景;TextPicker 适合连续值或较少选项的滚动…

2026/7/18 22:16:51阅读更多 →
2026年半封闭丝杆模组怎么选?哪家才是你的最佳之选?

2026年半封闭丝杆模组怎么选?哪家才是你的最佳之选?

在工业自动化飞速发展的今天,半封闭丝杆模组作为关键部件,其性能直接影响着生产效率和产品质量。面对市场上众多的品牌和型号,该如何做出选择呢?接下来,让我们一起探讨一下。精度性能:启英模组更胜一筹很多…

2026/7/18 22:14:50阅读更多 →
VSCode TypeScript 环境配置对比:全局安装 vs 项目本地安装的4个关键差异

VSCode TypeScript 环境配置对比:全局安装 vs 项目本地安装的4个关键差异

VSCode TypeScript 环境配置对比:全局安装 vs 项目本地安装的4个关键差异当你在VSCode中启动一个新的TypeScript项目时,第一个技术决策往往从安装方式开始。这个看似简单的选择——全局安装还是项目本地安装——实际上会深刻影响你的开发流程、团队协作和…

2026/7/18 10:49:13阅读更多 →
智慧树刷课插件:5分钟实现自动化学习的智能助手

智慧树刷课插件:5分钟实现自动化学习的智能助手

智慧树刷课插件:5分钟实现自动化学习的智能助手 【免费下载链接】zhihuishu 智慧树刷课插件,自动播放下一集、1.5倍速度、无声 项目地址: https://gitcode.com/gh_mirrors/zh/zhihuishu 智慧树刷课插件是一款专为智慧树在线教育平台设计的Chrome浏…

2026/7/18 8:49:08阅读更多 →
Steam创意工坊下载器WorkshopDL:跨平台游戏模组获取的终极解决方案

Steam创意工坊下载器WorkshopDL:跨平台游戏模组获取的终极解决方案

Steam创意工坊下载器WorkshopDL:跨平台游戏模组获取的终极解决方案 【免费下载链接】WorkshopDL WorkshopDL - The Best Steam Workshop Downloader 项目地址: https://gitcode.com/gh_mirrors/wo/WorkshopDL 你是否在GOG或Epic Games Store购买了心仪的游戏…

2026/7/18 14:49:24阅读更多 →
从模糊意图到可执行指令:Claude PRD中Prompt Engineering与需求颗粒度的5级映射法则

从模糊意图到可执行指令:Claude PRD中Prompt Engineering与需求颗粒度的5级映射法则

更多请点击: https://kaifayun.com 第一章:从模糊意图到可执行指令:Claude PRD中Prompt Engineering与需求颗粒度的5级映射法则 在Claude驱动的产品需求文档(PRD)生成实践中,原始业务意图往往以自然语言片…

2026/7/18 0:00:14阅读更多 →
Cursor配置生成失效?3大隐藏陷阱+4行修复代码,资深工程师连夜整理的紧急补救清单

Cursor配置生成失效?3大隐藏陷阱+4行修复代码,资深工程师连夜整理的紧急补救清单

更多请点击: https://codechina.net 第一章:Cursor配置生成失效?3大隐藏陷阱4行修复代码,资深工程师连夜整理的紧急补救清单 Cursor 配置生成突然失效,是近期高频报障场景。表面看是 cursor.config.json 未更新或 LSP…

2026/7/18 0:00:14阅读更多 →
某智驾大牛创业

某智驾大牛创业

作者:钟声编辑:Mark出品:红色星际头图:智能驾驶图片据悉,国内某头部智驾公司端到端模型技术大牛Z投身创业,并且已经拿到融资。Z不仅是该头部公司内部最年轻的对标阿里P10级别技术负责⼈,更是业内…

2026/7/18 0:00:14阅读更多 →
YOLOv8推理性能优化:从1.2FPS到35FPS的全链路加速实践

YOLOv8推理性能优化:从1.2FPS到35FPS的全链路加速实践

如果你在部署 YOLOv8 时,发现推理速度只有可怜的 1-2 FPS,而别人的演示视频却能跑到 30 FPS 以上,那么问题很可能不在模型本身,而在于你的整个处理链路。很多开发者拿到一个训练好的 YOLOv8 模型后,会直接使用官方示例…

2026/7/17 22:48:46阅读更多 →
Coze与Dify对比指南:低代码AI应用开发从入门到实战

Coze与Dify对比指南:低代码AI应用开发从入门到实战

1. 从零到一:为什么你需要了解 Coze 和 Dify?如果你对 AI 应用开发感兴趣,但一看到“大模型”、“智能体”、“工作流”这些词就头疼,觉得门槛太高,那这篇文章就是为你准备的。很多开发者,包括我自己&#…

2026/7/18 14:49:24阅读更多 →
AI生图工具怎么选?2026年6月版实测对比

AI生图工具怎么选?2026年6月版实测对比

做自媒体的朋友应该都有体会:配图一直是个让人头疼的问题。2026年,AI生图工具已经非常成熟了,但工具太多反而不知道怎么选。以下是截至2026年6月我对主流AI生图工具的实测对比。Midjourney V8.1:速度之王2026年6月11日&#xff0c…

2026/7/18 18:49:35阅读更多 →