解题思路
对于一个长度为N的数组,缺失的第一个正数在[1, N+1]中(若[1,N]在数组都出现了,那么答案是N+1),否则答案是[1,N]中没有出现的最小正数
代码
| 12
 3
 4
 5
 6
 7
 8
 9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 
 | class Solution:def firstMissingPositive(self, nums: List[int]) -> int:
 nums_len = len(nums)
 
 for i, num in enumerate(nums):
 if num <= 0:
 nums[i] = nums_len + 1
 
 for num in nums:
 num = abs(num)
 if num <= nums_len:
 nums[num-1] = -abs(nums[num-1])
 
 for i, num in enumerate(nums):
 if num > 0:
 return i + 1
 
 return nums_len + 1
 
 |