给你一个未排序的整数数组,请你找出其中没有出现的最小的正整数。
function firstMissingPositive(nums) {
if(nums.length == 0){
return 1
}
if(nums.length == 1){
if(nums[0] == 1 ){
return 2
}
return 1
}
nums = nums.sort((a,b)=>a-b)
if(nums.length == 2){
if(nums[0] < 1){
if(nums[1] < 1 || nums[1] > 1){
return 1
}
return 2
}
if(nums[0] == 1){
if((nums[1] - nums[0]) == 1 ){
return 3
}
return 2
}
if(nums[0] > 1){
return 1
}
return nums[nums.length-1] + 1
}
if(nums[0] > 1 || nums[nums.length-1] < 1){
return 1
}
for(let i = 0;i < nums.length - 1;i++){
let item = nums[i],nextItem = nums[i+1]
if(nextItem - item >= 2){
if(item + 1 <= 0){
if(nextItem > 1){
return 1
}
continue
}
return item + 1
}
}
return nums[nums.length-1] + 1
}
Leecode提交通过
原文:https://www.cnblogs.com/zhenjianyu/p/13354419.html