算法系列——缺失的第一个正整数
Posted BridgeGeorge
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了算法系列——缺失的第一个正整数相关的知识,希望对你有一定的参考价值。
题目
你一个未排序的整数数组 nums ,请你找出其中没有出现的最小的正整数。
请你实现时间复杂度为 O(n) 并且只使用常数级别额外空间的解决方案。
思路
- 哈希法
hash 计数:需要额外的空间。所有出现的数字,hash 值 + 1。第二次从 1 开始查找 hash 表,找不到就是它了。但是这种方案不符合题意,而且 hash 计数这个方案效率也不是最优的。 - 置换法
(待补充)
代码
class Solution
public int firstMissingPositive(int[] nums)
Map<Integer,Integer> map=new HashMap<>();
for(int i=0;i<nums.length;i++)
map.put(nums[i],i);
int result=1;
while(map.containsKey(result))
result++;
return result;
以上是关于算法系列——缺失的第一个正整数的主要内容,如果未能解决你的问题,请参考以下文章
2021-07-12:缺失的第一个正数。给你一个未排序的整数数组 nums ,请你找出其中没有出现的最小的正整数。请你实现时间复杂度为 O(n) 并且只使用常数级别额外空间的解决方案。比如[3,4,5