Fork me on GitHub

First Missing Positive

Description

https://leetcode.com/problems/first-missing-positive/description/

Solution

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
class Solution:
def firstMissingPositive(self, nums):
"""
:type nums: List[int]
:rtype: int
"""
if nums is None or len(nums) == 0:
return 1

for i in range(len(nums)):
while nums[i] != i + 1 and nums[i] <= len(nums) and nums[i] > 0 and nums[nums[i] - 1] != nums[i]:
temp = nums[i]
nums[i] = nums[temp - 1]
nums[temp - 1] = temp
print (nums)

for i in range(len(nums)):
if nums[i] != i + 1:
return i + 1

return len(nums) + 1