題目:
給定一個(gè)未排序的整數(shù)數(shù)組跟束,找出其中沒有出現(xiàn)的最小的正整數(shù)今缚。
示例 1:
輸入: [1,2,0]
輸出: 3
示例 2:
輸入: [3,4,-1,1]
輸出: 2
示例 3:
輸入: [7,8,9,11,12]
輸出: 1
說明:
你的算法的時(shí)間復(fù)雜度應(yīng)為O(n),并且只能使用常數(shù)級(jí)別的空間宏粤。
var firstMissingPositive = function(nums) {
if(nums.length ==0) return 1;//為空數(shù)組的特例
nums.sort(function(a,b){return a-b});//排序
nums = [... new Set(nums)] //去掉重復(fù)數(shù)字
let index = nums.indexOf(1);//求1的位置
if(index<0) return 1;
for(var i=index;i<nums.length;i++){//返回不遞加1的元素
if(nums[i] != (i-index)+1) return (i-index)+1
}
//數(shù)據(jù)都累加1荔燎,返回最大的值并加1
return nums[nums.length-1]+1
};