可视化图解算法70:缺失的第一个正整数

news/2025/11/27 18:24:18/文章来源:https://www.cnblogs.com/jiangzhou/p/19279067

1.题目

牛客网 面试笔刷 TOP101    |     LeetCode 41. 缺失的第一个正数

描述

给定一个未排序的整数数组nums,请你找出其中没有出现的最小的正整数

进阶: 空间复杂度 O(1),时间复杂度 O(n)

数据范围:

-231<=nums[i]<=231-1

0<=len(nums)<=5x105

示例1

输入:

[1,0,2]

返回值:

3

示例2

输入:

[-2,3,4,1,5]

返回值:

2

示例3

输入:

[4,5,6,8,9]

返回值:

1

2. 题解思路

未排序的整数数组nums,需要找到缺失的第一个正整数,可以将数组中的内容添加到set中(主要考虑到set查询的速度优势),同时记录数组中的最大正整数n,之后从1到n遍历整数,对比遍历到的整数是否已经在set中。

具体思路是:

  1. 定义一个哈希表(set);

  2. 将数组中的值存储到set中,其中n为数组中最大的数;

  3. 从自然数1开始到n,到map中找,如果对应的自然数没有找到,直接返回;

  4. [1:n]都在map中,则返回 n + 1。

如果文字描述的不太清楚,你可以参考视频的详细讲解。

  • Python版本:https://www.bilibili.com/cheese/play/ep1374989
  • Java版本:https://www.bilibili.com/cheese/play/ep1368279
  • Golang版本:https://www.bilibili.com/cheese/play/ep1368663

3.编码实现

核心代码如下:

func firstMissingPositive(nums []int) int {//1.定义一个哈希表(set,用map实现set的功能)hashTable := make(map[int]struct{}, len(nums))n := 1 //数组中最大的数//2.将数组中的值存储到map中,key为:数组中的值,value:可以是任意值(没有实际意义),数组中的最大值为nfor _, v := range nums {hashTable[v] = struct{}{}if v > n {n = v}}//3.从自然数1开始到n,到map中找,如果对应的自然数没有找到,直接返回for i := 1; i <= n; i++ {if _, ok := hashTable[i]; !ok {return i}}//4. 1~n都在map中,则返回 n + 1return n + 1}

具体完整代码你可以参考下面视频的详细讲解。

  • Python版本:https://www.bilibili.com/cheese/play/ep1374989
  • Java版本:https://www.bilibili.com/cheese/play/ep1368279
  • Golang版本:https://www.bilibili.com/cheese/play/ep1368663

4.总结

本题的核心其实是统计在数组中未出现的第一个正整数,因此需要用map或者set,相比map来说用set更适合本题。将数组中的内容全部添加到set中,之后对整数1至n到set中查询,查看该整数是否存在。

分割线

《数据结构与算法》深度精讲课程正式上线啦!7 大核心算法模块全解析:

  ✅   链表

  ✅   二叉树

  ✅   二分查找、排序

  ✅   堆、栈、队列

  ✅   回溯算法

  ✅   哈希算法

  ✅   动态规划

无论你是备战笔试面试、提升代码效率,还是突破技术瓶颈,这套课程都将为你构建扎实的算法思维底座。🔥立即加入学习打卡,与千名开发者共同进阶!

  • Python编码实现:https://www.bilibili.com/cheese/play/ss897667807
  • Java编码实现:https://www.bilibili.com/cheese/play/ss161443488
  • Golang编码实现:https://www.bilibili.com/cheese/play/ss63997

对于LeetCode数据结构与算法,我们总结了一套【可视化+图解】方法,依据此方法来解决相关问题,算法变得易于理解,写出来的代码可读性高也不容易出错。具体也可以参考视频详细讲解。

今日佳句:人皆知有用之用,而莫知无用之用也。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/978828.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

头大的内存泄漏

头大的内存泄漏function LoadTemplateJsonFromDB(ATemplateID: Integer): TJSONObject;//注意返回对象 varQ: TFDQuery;S: string;RootVal: TJSONValue;RootArr: TJSONArray; beginResult := nil;Q := TFDQuery.Create…

金蝶ERP制造业行业实施专家榜:专精特新企业如何选择行业经验丰富的服务商?

对于制造业企业而言,ERP系统的选型和实施远比其他行业复杂。它不仅要求财务、供应链的基础功能,更需要深度集成PLM(产品生命周期管理)、MES(制造执行系统)等核心环节,实现从设计到交付的全流程数字化。因此,选…

清理谷歌浏览器垃圾文件 Chrome “User Data” - 教程

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

动态规划:不同的二叉搜索树

题目力扣链接 代码随想录链接 动态规划找到子状态之间的关系很重要!dp数组定义:1到i为节点组成的二叉搜索树的个数为dp[i]初始化:初始化dp[0]为零,空树为一种情况递推公式:(注意是以j遍历哪个为头节点,再将所有…

金蝶ERP服务商实施能力新标准:哪家服务商能助力帮助上市企业实施过满足IPO审计系统搭建?

企业启动IPO(首次公开募股)进程时,对内部控制和财务信息披露的要求达到前所未有的高度。此时,ERP系统的规范性、数据准确性、内控穿透性成为审计和合规审查的重中之重。选择一家具有丰富服务拟IPO及已上市企业经验…

金蝶ERP服务商金标准:数据治理与流程梳理能力哪家强?——上海宝蝶排名第一

随着企业数字化转型进入深水区,ERP项目的成功已不再仅仅是“系统能跑起来”,更重要的是提升管理效率、优化业务流程,并实现高质量的数据治理。因此,2025年企业在选择金蝶ERP服务商时,必须重点考察其管理咨询能力和…

2025河南本地网站建站公司推荐:无限动力科技,11年深耕的数字化伙伴

2025 河南本地网站建站公司推荐:无限动力科技,11 年深耕的数字化伙伴在郑州 51 万家中小企业的数字化转型浪潮中,官网已从 “可有可无的装饰” 变成 “必不可少的数字阵地”。但二七区餐饮连锁的模板站与同行雷同、…

2025 河南短视频口碑榜:无限动力助工厂获客类推广软文

2025 河南短视频口碑榜:无限动力助工厂获客在数字化营销主导的当下,短视频已成为工厂类企业打破获客瓶颈的核心工具。尤其对河南地区工厂而言,如何通过短视频精准触达采购商、降低获客成本,成为企业增长的关键。20…

人机交互CS结构页面 -

人机交互CS结构页面完成了CS结构的物流配送项目 首界面运单总览界面,一些增删改查功能轨迹事件界面,对运单状态进行更改,可查看当前位置,导出轨迹文件查看当前位置统计报表功能界面

2025年郑州短视频运营服务商推荐榜:河南无限动力凭技术实力领跑获客赛道

2025 年郑州短视频运营服务商推荐榜:河南无限动力凭实力上榜在流量分散的当下,短视频已从企业营销的 “可选项” 变为 “必答题”。对于河南本土企业而言,选择一家懂技术、有案例、能落地的短视频运营服务商,成为破…

2025年11月定制滑轨品牌推荐: 非标定制KVM重型座椅多节滑轨源头厂家精密工艺与市场认可度解析!

滑轨作为家具、办公设备等产品的核心五金配件,其顺滑度、耐用性直接影响使用体验与产品寿命。优质滑轨能实现数万次无故障开合,而劣质产品易出现卡顿、生锈、噪音等问题。在众多五金制品企业中,惠州市万利亨通五金制…

【NCS随笔】NCS如何修改连接间隔

NCS如何修改连接间隔一、连接间隔 连接间隔(Connection Interval)是在 两个已建立连接的 Bluetooth LE 设备之间,连续两次“连接事件”开始之间的时间间隔 在一个连接中,双方大部分时间都在休眠,只在每个连接间隔…

2025年11月成都律师事务所最新推荐榜:成都金牌/离婚/知名/经济纠纷律师事务所与客户口碑深度解析!

在法律需求日益多元的当下,选择一家专业靠谱的律师事务所,成为许多人化解纠纷、维护权益的关键一步。无论是复杂的刑事辩护、牵扯众多的婚姻家事纠纷,还是企业经营中的合同问题,律所的专业度与服务质量都直接影响问…

Windows Dirty Pipe漏洞CVE-2022-22715分析与利用

本文详细分析了Windows命名管道文件系统驱动程序npfs.sys中的CVE-2022-22715漏洞,该漏洞存在于NpTranslateContainerLocalAlias函数中,由于整数溢出导致越界写入,可用于沙箱逃逸。文章深入探讨了漏洞原理、利用挑战…

2025 年上海影棚出租公司最新推荐榜,聚焦技术实力与市场口碑深度解析上海汽车摄影棚出租 / 上海汽车影棚出租有灯箱 / 上海汽车影棚出租有转盘 / 上海汽车影棚出租 / 上海直播影棚出租公司推荐

引言 在商业影像、汽车广告及直播电商行业高速发展的背景下,专业影棚租赁需求持续增长,而市场资源质量差异显著,给企业选择带来挑战。为精准推荐优质品牌,本次榜单参考国际影像技术协会(IITA)2024-2025 年度测评…

算法竞赛备考冲刺必刷题(C++) | 洛谷 B3639 T2点亮灯笼 - 详解

算法竞赛备考冲刺必刷题(C++) | 洛谷 B3639 T2点亮灯笼 - 详解2025-11-27 18:06 tlnshuju 阅读(0) 评论(0) 收藏 举报pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !imp…

2025年金蝶ERP哪家代理商能承接海外项目实施交付——上海宝蝶首屈一指

随着中国企业“走出去”步伐加快,特别是大型集团客户开始布局海外市场,对ERP系统的需求已从本地化管理升级为全球化管控和跨国项目交付。选择一家具备国际视野和复杂系统集成能力的金蝶代理商,成为保障全球业务高效…

医疗AI受非临床信息干扰研究

研究发现患者信息中的非临床因素如拼写错误、多余空格和情绪化语言会降低AI模型诊断准确性,尤其对女性患者影响更显著,凸显医疗AI部署前审计的重要性。医疗AI受非临床信息干扰研究 研究人员发现,患者信息中的非临床…

人机交互BS结构界面 -

人机交互BS结构界面模拟京东平台界面做的一个电商平台的交互界面订单界面客户服务界面以及后台系统的一些界面

Solon AI 开发学习4 - chat - 模型实例的构建和简单调用

Solon框架的聊天模型接口(ChatModel)提供了多种交互方式,包括同步调用(call)、流式调用(stream)、工具调用(Tool Call)等功能。支持通过YAML配置或手动方式构建模型,可设置API地址、提供商、模型类型等参数。接口支持…