class Solution(object):
def firstMissingPositive(self, nums):
"""
:type nums: List[int]
:rtype: int
"""
Len=len(nums)
for i in range(Len):
if nums[i]<=0 or nums[i]>Len:
continue
self.setNum(nums[i],nums,Len)
for i in range(Len):
if nums[i]!=i+1:return i+1
return Len+1
def setNum(self, num, nums, Len):
if num<=0 or num>Len:
return
curNum=nums[num-1]
nums[num-1]=num
if curNum!=num:
self.setNum(curNum,nums,Len)