classSolution: deffirstMissingPositive(self, nums: List[int]) -> int: n = len(nums) for i inrange(n): # 把非正数都改为一个特殊的数,注意0也要修改 if nums[i] <= 0: nums[i] = n + 1 for i inrange(n): # 数有可能已经被前序循环修改为负数了 num = abs(nums[i]) if num <= n: # print(num, nums) # 可能有重复的数 nums[num-1] = -abs(nums[num-1]) for i inrange(n): if nums[i] >= 0: return i+1 return n+1