给你一个未排序的整数数组,请你找出其中没有出现的最小的正整数。
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