缺失的第一个正数

问题陈述

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

思路分析

将数组存入一个hashset,然后从i=1开始遍历,判断hashset中是否存在i元素,不存在则返回这个i,若一直到nums.length都存在,则返回nums.length+1。

代码实现

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
class Solution{
public int getFirstPositive(int[] nums){
int len=nums.length;
Set<Integer> set=new HashSet<>();
for(int c:nums){
set.add(c);
}
for(int i=1;i<=len;i++){
if(!set.contains(i)){
return i;
}
}
return len+1;
}
}