41-缺失的第一个正数(没完全作对)

 时间复杂度可以满足,常数级别额外空间弄不出来。。。。

可以使用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;
    }
}

  

猜你喜欢

转载自www.cnblogs.com/lzh1043060917/p/12767632.html
今日推荐