First Missing Positive
HardArrayHash Table
Solution
export function firstMissingPositive(nums: number[]): number {
const n = nums.length;
for (let i = 0; i < n; i++) {
while (0 < nums[i] && nums[i] <= n && nums[nums[i] - 1] !== nums[i]) {
const num = nums[i];
[nums[i], nums[num - 1]] = [nums[num - 1], num];
}
}
for (let i = 0; i < n; i++) {
if (nums[i] !== i + 1) {
return i + 1;
}
}
return n + 1;
}