题解 | #缺失的第一个正整数#
缺失的第一个正整数
http://www.nowcoder.com/practice/50ec6a5b0e4e45348544348278cdcee5
时间复杂度O(n),空间复杂度O(n)的做法:开辟一个新的数组arr,长度为nums.length+1,遍历nums数组,如果非负且值小于nums的长度,则把arr[nums[i]]置1。然后遍历辅助数组,找到下标不为1的第一个元素即可。
public class Solution {
public int minNumberDisappeared (int[] nums) {
int []arr = new int [nums.length+1];
for(int i=0;i<nums.length;++i){
if(nums[i]<=nums.length&&nums[i]>0){
arr[nums[i]] =1;
}
}
for(int i=1;i<arr.length;++i)
if(arr[i]==0)return i;
return arr.length;
}
}