Skip to content

Commit 20e7820

Browse files
authored
Merge pull request #1389 from loczek/41-First-Missing-Positive
Create: 41-First-Missing-Positive.ts
2 parents 86d068c + 18db18d commit 20e7820

File tree

1 file changed

+26
-0
lines changed

1 file changed

+26
-0
lines changed
Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
function firstMissingPositive(nums: number[]): number {
2+
for (let i = 0; i < nums.length; i++) {
3+
if (nums[i] < 0) {
4+
nums[i] = 0;
5+
}
6+
}
7+
8+
for (let i = 0; i < nums.length; i++) {
9+
let val = Math.abs(nums[i]);
10+
if (1 <= val && val <= nums.length) {
11+
if (nums[val - 1] > 0) {
12+
nums[val - 1] *= -1;
13+
} else if (nums[val - 1] === 0) {
14+
nums[val - 1] = -1 * (nums.length + 1);
15+
}
16+
}
17+
}
18+
19+
for (let i = 1; i < nums.length + 1; i++) {
20+
if (nums[i - 1] >= 0) {
21+
return i;
22+
}
23+
}
24+
25+
return nums.length + 1;
26+
}

0 commit comments

Comments
 (0)