41. 缺失的第一个正数
解法一:
class Solution:
def firstMissingPositive(self, nums: List[int]) -> int:
i = 0
while i < len(nums):
if nums[i] == i+1 or nums[i] <= 0 or nums[i]-1 >= len(nums): #跳过
i += 1
elif nums[i] != nums[nums[i]-1]:
self.swap(nums, i, nums[i] - 1) # 调用函数交换
else:
i += 1
#第二次遍历
i = 0
while i < len(nums) and nums[i] == i+1:
i += 1
return i+1
def swap(self, nums, i, j): # 交换函数
nums[i], nums[j] = nums[j], nums[i]最后更新于