简单解法
class Solution:
def firstMissingPositive(self, nums):
n = len(nums)
if n == 0:
return 1
for i in range(1,n+2):
if len([j for j in nums if j!=i])==n:
return i
快速排序解法
将列表中索引的数字与数字对应的的索引的数字对调,对列表进行排序
class Solution:
def firstMissingPositive(self, nums):
for i in range(len(nums)):
while 0 <= nums[i]-1 < len(nums) and nums[nums[i]-1] != nums[i]:
tmp = nums[i]-1
nums[i], nums[tmp] = nums[tmp], nums[i]
for i in range(len(nums)):
if nums[i] != i+1:
return i+1
return len(nums)+1