Skip to content

Commit e266272

Browse files
authored
HARD - Greedy - Implementation
Corner cases should be covered too. Did you cover them?
1 parent cb6090c commit e266272

File tree

1 file changed

+14
-0
lines changed

1 file changed

+14
-0
lines changed

LeetCode/41.first-missing-positive.py

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
class Solution:
2+
def firstMissingPositive(self, nums: List[int]) -> int:
3+
n = len(nums)
4+
for i in range(n):
5+
correctPos = nums[i]-1 # number 3 goes to index 2
6+
while 1 <= nums[i] <= n and nums[i] != nums[correctPos]:
7+
nums[i], nums[correctPos] = nums[correctPos], nums[i]
8+
correctPos = nums[i]-1 # now nums[i] has changed
9+
10+
11+
for i in range(n):
12+
if i+1 != nums[i]:
13+
return i+1
14+
return n+1

0 commit comments

Comments
 (0)