Open Tcdian opened 4 years ago
/**
* @param {number[]} nums
* @return {number}
*/
var firstMissingPositive = function(nums) {
for (let i = 0; i < nums.length; i++) {
while (nums[i] > 0 && nums[i] <= nums.length && nums[nums[i] - 1] !== nums[i]) {
swap(nums[i] - 1, i);
}
}
for (let i = 0; i < nums.length; i++) {
if (nums[i] !== i + 1) {
return i + 1;
}
}
return nums.length + 1;
function swap(x, y) {
const temp = nums[x];
nums[x] = nums[y];
nums[y] = temp;
}
};
function firstMissingPositive(nums: number[]): number {
for (let i = 0; i < nums.length; i++) {
while (nums[i] > 0 && nums[i] <= nums.length && nums[nums[i] - 1] !== nums[i]) {
swap(nums[i] - 1, i);
}
}
for (let i = 0; i < nums.length; i++) {
if (nums[i] !== i + 1) {
return i + 1;
}
}
return nums.length + 1;
function swap(x: number, y: number) {
const temp = nums[x];
nums[x] = nums[y];
nums[y] = temp;
}
};
41. First Missing Positive
给你一个未排序的整数数组,请你找出其中没有出现的最小的正整数。
Example 1
Example 2
Example 3
Note
O(n)
,并且只能使用常数级别的额外空间。