
LeetCode--041--缺失的第一个整数(java)
初始化变量:设置一个变量 遍历数组:对于数组中的每一个数 结束循环检查:如果整个遍历完成后仍未找到符合条件的数,返回当前的
发布日期:2025-04-05 02:37:17
浏览次数:17
分类:精选文章
本文共 821 字,大约阅读时间需要 2 分钟。
要解决给定未排序的整数数组中找出没有出现的最小正整数的问题,我们可以使用一种高效且只占用常数级别空间的方法。以下是解决问题的详细步骤和优化后的代码:
方法思路
我们可以通过遍历数组来检查每个数字,找到最小的未出现的正整数。具体步骤如下:
res
初始化为 1,它表示我们要找的最小的正整数。num
: - 如果
num
等于res
,说明这个数已经被访问过,我们更新res
为下一个需要检查的值。 - 如果
num
大于res
,说明在res
到num
之间有一个或多个数未被访问到,因此返回res
作为结果。 - 如果
num
小于res
,继续检查下一个数。
res
,它将会是数组中最后一个数加 1。这种方法的时间复杂度为 O(n),只需一次遍历,且只使用常数级别的空间,满足了题目的要求。
优化后的代码
def first_missing_positive(nums): res = 1 for num in nums: if num == res: res += 1 elif num > res: return res return res
代码解释
- 初始化
res
为 1:这是我们要找的最小正整数。 - 遍历每个数
num
:检查每个数是否等于当前的res
,从而决定下一步操作。- 如果
num
等于res
,res
加1,继续检查下一个更大的数。 - 如果
num
大于res
,说明res
处还有缺失,立刻返回res
。
- 如果
- 结束条件:如果整个数组遍历完毕而没有找到任何大于
res
的数,返回res
,它会是由数组中最后一个数加1后的结果。
这种方法简洁高效,能够在 O(n) 时间和常数级别空间内解决问题。
发表评论
最新留言
不错!
[***.144.177.141]2025年05月10日 14时57分07秒
关于作者

喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
Ehcache Java开源缓存框架
2025-03-29
el-select下拉框修改背景色
2025-03-29
ElasticSearch - 基于 JavaRestClient 操作索引库和文档
2025-03-29
ElasticSearch - 索引库和文档相关命令操作
2025-03-29
elasticsearch 7.7.0 单节点配置x-pack
2025-03-29
Elasticsearch7.3.1启动指定JDK11
2025-03-29
Elasticsearch下载安装
2025-03-29
Elasticsearch入门教程(Elasticsearch7,linux)
2025-03-29
ElasticSearch设置字段的keyword属性
2025-03-29
Elasticsearch面试题
2025-03-29
element 如何使用自定义icon图标
2025-03-29
element-ui:el-input输入数字-整数和小数
2025-03-29
ElementUI-el-progress改变进度条颜色跟文字样式
2025-03-29
elTable火狐浏览器换行
2025-03-29
15个Python数据处理技巧(非常详细)零基础入门到精通,收藏这一篇就够了
2025-03-29