时间复杂度可以满足,常数级别额外空间弄不出来。。。。
可以使用HashSet,因为找的是没排序的最小正整数,所以这样就行,先把每一个元素都add进HashSet,之后,从1开始,遍历1到nums.length+1的所有数字,如果这个数字i不在set里面,就说明缺这个数字。用Set。。。好像是怕有重复的数字吧
class Solution { public int firstMissingPositive(int[] nums) { Set<Integer> set=new HashSet<>(); for(int i=0;i<nums.length;i++) { set.add(nums[i]); } for(int i=1;i<=nums.length;i++) { if(!set.contains(i))return i; } return nums.length+1; } }