题目描述:
解法:基于排序/Map
排序:
升序排列后,很容易找到第一个缺失的正数。
代码:
class Solution {
public int firstMissingPositive(int[] nums) {
Arrays.sort(nums);
int len = nums.length;
int i = 0;
while(i < len){
if(nums[i] < 0){
i++;
} else{
break;
}
}
if(i == len || i < len && nums[i] > 1) {
return 1;
}
while(i + 1 < len){
if(i + 1 < len && nums[i + 1] - nums[i] == 1 || nums[i + 1] - nums[i] == 0){
i++;
continue;
} else {
return nums[i] + 1;
}
}
return nums[len - 1] + 1;
}
}