题目:
给你一个未排序的整数数组 nums ,请你找出其中没有出现的最小的正整数。请你实现时间复杂度为 O(n) ,并且只使用常数级别额外空间的解决方案。
示例 1:
- 输入:nums = [1,2,0]
- 输出:3
- 解释:范围 [1,2] 中的数字都在数组中。
示例 2:
- 输入:nums = [3,4,-1,1]
- 输出:2
- 解释:1 在数组中,但 2 没有。
示例 3:
- 输入:nums = [7,8,9,11,12]
- 输出:1
- 解释:最小的正数 1 没有出现。
解答:
思路1:
- step1: 循环将数组放入Set中
- step2: 循环从1开始判断Set是否添加该元素,可以添加直接返回。否则继续循环。
- step3:如果循环都没有返回set.size() + 1