题目:给出一个List(nums),找到不在list里的最小正整数。
由题意,n = len(nums),那么该数必然属于1~n+1。
class Solution:
def firstMissingPositive(self, nums: List[int]) -> int:
'''
'''
if 1 not in nums:
return 1
n = len(nums)
for i in range(n):
if nums[i] > n or nums[i] < 1:
nums[i] = 1
for i in range(n):
h = abs(nums[i])
if h == n:
nums[0] = 0
else:
nums[h] = -abs(nums[h])
for i in range(1,n):
if nums[i] > 0:
return i
if nums[0] > 0:
return n
return n+1