Skip to content

Commit c41d802

Browse files
committed
leetcode
1 parent 5e0ba1f commit c41d802

File tree

1 file changed

+22
-0
lines changed

1 file changed

+22
-0
lines changed

firstMissingPositive.py

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
# @param A, a list of integer
2+
# @return an integer
3+
def firstMissingPositive(A):
4+
i = 0
5+
n = len(A)
6+
while i < n:
7+
if A[i] != (i + 1) and A[i] > 0 and A[i] <= n and A[i] != A[A[i] - 1]:
8+
tmp = A[i]
9+
A[i] = A[tmp - 1]
10+
A[tmp - 1] = tmp
11+
else:
12+
i += 1
13+
14+
for i in range(n):
15+
if A[i] != (i + 1):
16+
return i + 1
17+
18+
return n + 1
19+
20+
21+
assert firstMissingPositive([1, 2, 0]) == 3
22+
assert firstMissingPositive([3, 4, -1, 1]) == 2

0 commit comments

Comments
 (0)