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;
    }
}

  

 

posted @ 2020-04-24 15:17  弓呆的胖次  阅读(103)  评论(0编辑  收藏  举报