【Leetcode】最长连续序列
1 题目给定一个未排序的整数数组 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]输出32 题目分析2.1 难点本题的难点在于要求时间复杂度O(n)。因此不能用数组因为数组不保证有序如果从无序数组的每个元素往左右扩会导致外循环内循环某些元素会被重复计算从而时间复杂度超过O(n);而对数组排序虽然会减少重复计算但也会导致时间复杂度超过O(n);需要抓住那个决定性观察“连续数组”为什么“连续”是因为它的中间不存在缺口。换句话说我们只需要从开头开始计数就可以得到该数组的长度而不需要中间重复工作。理解了这一点就可以解决上面说到的【某些元素会被重复计算】的问题如果 num-1在就不需要计数因为从num开始一定不是最长的。需要考虑到重复元素的问题如果数组中有重复元素即使num-1不在也有可能重复计数相同的起点会被算两遍。因此需要使用set去重。2.2 算法手推有了解题思路之后不要急着写代码而是先用一个例子手推。nums[100,4,200,1,3,2]set{100,4,200,1,3,2}# 开始循环x100:x-199不在起点100x1101不在cur_len1x4:x-13在skip x200:x-1199不在起点200x1201不在cur_len1x1:x-10不在起点1x12在x23在x34在x45不在cur_len4x3:x-12在skip x4:x-13在skip longest_len43 代码代码的关键有三点重复元素的跳过num_set set(num)for num in num_set非起点的跳过if num-1 in num_set则跳过起点的计数while num1 in num_setdeflongestConsecutive(self,nums):num_setset(nums)longest_len0fornuminnum_set:ifnum-1notinnum_set:cur_numnum cur_len1whilecur_num1innum_set:cur_num1cur_len1longest_lenmax(longest_len,cur_len)returnlongest_len

相关新闻

AI Agent前端开发实战:从状态管理到架构设计的踩坑指南

AI Agent前端开发实战:从状态管理到架构设计的踩坑指南

1. 从“调包侠”到“架构师”的认知转变 刚入行前端那会儿,我对“AI Agent”的理解,还停留在调用一个API、渲染一个对话气泡的层面。不就是把OpenAI的Chat Completion接口封装一下,搞个 useChat 的React Hook,然后处理一下流式响…

2026/8/9 18:38:07 阅读更多 →
ADBKeyBoard:解决Android自动化测试中文输入难题的终极方案

ADBKeyBoard:解决Android自动化测试中文输入难题的终极方案

1. 项目缘起:一个看似简单却困扰多时的自动化测试难题在Android自动化测试或者远程控制脚本的开发过程中,我们经常会遇到一个非常具体但又让人头疼的问题:如何通过ADB命令,稳定、可靠地向设备输入中文?无论是自动化填写…

2026/8/9 15:27:23 阅读更多 →
生成word文档的千问:AI导出鸭跨模态文档流无损导出方案深度测评

生成word文档的千问:AI导出鸭跨模态文档流无损导出方案深度测评

生成word文档的千问:AI导出鸭跨模态文档流无损导出方案深度测评 一、从格式熵增到结构保真:AI文档交付的底层矛盾 大模型对话界面与办公软件之间存在一条长期被忽视的鸿沟。通义千问等模型输出的内容本质上是流式Markdown与内嵌HTML的混合渲染流&#xf…

2026/8/9 15:50:40 阅读更多 →

最新新闻

OpenUtau:免费开源虚拟歌手制作平台,让音乐创作触手可及

OpenUtau:免费开源虚拟歌手制作平台,让音乐创作触手可及

OpenUtau:免费开源虚拟歌手制作平台,让音乐创作触手可及 【免费下载链接】OpenUtau Open singing synthesis platform / Open source UTAU successor 项目地址: https://gitcode.com/gh_mirrors/op/OpenUtau OpenUtau是一款专为UTAU社区设计的免费…

2026/8/10 5:13:37 阅读更多 →
Nacos与Sentinel核心机制解析:从AP/CP模型到滑动窗口限流

Nacos与Sentinel核心机制解析:从AP/CP模型到滑动窗口限流

这类源码解析文章,很多人一上来就扎进代码细节,结果看了半天,还是不知道面试官到底想问什么,或者在实际项目中遇到问题该怎么定位。这篇文章不打算逐行翻译源码,而是围绕Nacos和Sentinel这两个 Spring Cloud Alibaba 的…

2026/8/10 5:13:37 阅读更多 →
Unity多相机透视效果:RenderTexture穿帮问题深度解析与解决方案

Unity多相机透视效果:RenderTexture穿帮问题深度解析与解决方案

1. 项目概述:透视效果与“穿帮”的根源做游戏或者交互应用的时候,想实现那种“隔墙透视”、“X光眼”或者“多层结构展示”的效果,是很多开发者都会遇到的创意需求。一个非常经典且看似直接的技术方案,就是使用Unity的多相机&…

2026/8/10 5:13:37 阅读更多 →
中介者模式:解耦复杂系统交互的设计模式实践

中介者模式:解耦复杂系统交互的设计模式实践

1. 中介者模式:模块间解耦的利器第一次接触中介者模式是在一个电商后台系统的重构项目中。当时我们的订单模块需要直接调用库存模块、支付模块和物流模块,各模块间形成了复杂的网状调用关系。每次新增一个业务功能,都要在多个模块间来回修改&…

2026/8/10 5:13:37 阅读更多 →
基于Django+Vue3的社区儿童玩具交易系统开发实践

基于Django+Vue3的社区儿童玩具交易系统开发实践

1. 项目概述:社区儿童玩具交易系统的核心价值去年夏天,我在小区业主群里看到有家长想转让八成新的乐高积木,同时又有邻居在求购二手平衡车。这种供需匹配的场景触发了我的思考:为什么不能为社区家庭搭建一个专属的儿童玩具交易平台…

2026/8/10 5:13:37 阅读更多 →
SpringBoot医院挂号系统开发与高并发优化实践

SpringBoot医院挂号系统开发与高并发优化实践

1. 项目概述:SpringBoot医院挂号系统开发实录三甲医院门诊部每天早上的场景总是惊人的相似:挂号窗口前排起的长龙、患者焦急的等待、医护人员手忙脚乱地处理纸质单据。这种传统挂号方式不仅效率低下,更成为医患矛盾的潜在引爆点。我去年参与开…

2026/8/10 5:12:37 阅读更多 →

日新闻

GraphQL-CSS API全解析:useGqlCSS、GqlCSS组件与getStyles实用指南

GraphQL-CSS API全解析:useGqlCSS、GqlCSS组件与getStyles实用指南

GraphQL-CSS API全解析:useGqlCSS、GqlCSS组件与getStyles实用指南 【免费下载链接】graphql-css A blazing fast CSS-in-GQL™ library. 项目地址: https://gitcode.com/gh_mirrors/gr/graphql-css GraphQL-CSS是一个基于GraphQL的CSS-in-GQL™库&#xff0…

2026/8/10 0:00:02 阅读更多 →
告别语言障碍:KISS Translator 双语翻译插件终极指南

告别语言障碍:KISS Translator 双语翻译插件终极指南

告别语言障碍:KISS Translator 双语翻译插件终极指南 【免费下载链接】kiss-translator A simple, open source bilingual translation extension & Greasemonkey script (一个简约、开源的 双语对照翻译扩展 & 油猴脚本) 项目地址: https://gitcode.com/…

2026/8/10 0:00:02 阅读更多 →
BepInEx配置管理器:游戏插件配置的终极可视化解决方案

BepInEx配置管理器:游戏插件配置的终极可视化解决方案

BepInEx配置管理器:游戏插件配置的终极可视化解决方案 【免费下载链接】BepInEx.ConfigurationManager Plugin configuration manager for BepInEx 项目地址: https://gitcode.com/gh_mirrors/be/BepInEx.ConfigurationManager 你是否曾经因为游戏插件的复杂…

2026/8/10 0:00:02 阅读更多 →

周新闻

5分钟告别提取码焦虑:baidupankey如何智能破解百度网盘资源锁

5分钟告别提取码焦虑:baidupankey如何智能破解百度网盘资源锁

5分钟告别提取码焦虑:baidupankey如何智能破解百度网盘资源锁 【免费下载链接】baidupankey 在线查询网盘提取码(维护中 rm repo) 项目地址: https://gitcode.com/gh_mirrors/ba/baidupankey 你是否曾经在深夜寻找一份重要资料&#x…

2026/8/10 1:05:29 阅读更多 →
如何快速生成中国车牌图片:Python开源工具完整指南

如何快速生成中国车牌图片:Python开源工具完整指南

如何快速生成中国车牌图片:Python开源工具完整指南 【免费下载链接】chinese_license_plate_generator 中国车牌生成器 项目地址: https://gitcode.com/gh_mirrors/ch/chinese_license_plate_generator 中国车牌生成器是一个基于Python的开源项目&#xff0c…

2026/8/10 1:05:29 阅读更多 →
收藏!小白程序员轻松入门大模型,从Harness工程开始实践

收藏!小白程序员轻松入门大模型,从Harness工程开始实践

文章强调学习大模型不应只关注模型本身,而应重视模型外的系统搭建,即Harness。提出AgentModelHarness的实用公式,详细介绍Harness的四个层次:持久化层、执行层、控制层和观察与验证层。文章还探讨了上下文工程、工具设计、AGENTS.…

2026/8/10 1:05:29 阅读更多 →

月新闻

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南 【免费下载链接】BaiduNetdiskPlugin-macOS For macOS.百度网盘 破解SVIP、下载速度限制~ 项目地址: https://gitcode.com/gh_mirrors/ba/BaiduNetdiskPlugin-macOS 还在为百度网盘macOS版的龟速下…

2026/8/9 17:05:02 阅读更多 →
终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换 【免费下载链接】ncmdump 项目地址: https://gitcode.com/gh_mirrors/ncmd/ncmdump 还在为网易云音乐下载的NCM格式文件无法在其他播放器播放而烦恼吗?ncmdump解密工具帮你轻松解决这个困…

2026/8/10 1:05:29 阅读更多 →
HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

AgentCard 智能体卡片:为英语学习 App 打造桌面级学习助手适用平台:HarmonyOS 7.0 (API 26 Beta)一、引言 HarmonyOS 7.0(API 26 Beta)新增了 AgentCard 智能体卡片能力,这是继 HMAF(鸿蒙智能体框架&#x…

2026/8/9 17:05:02 阅读更多 →