def find_first_missing(nums):
# 把1放到下标0的位置上,2放到下标1的位置上……
for i in range(len(nums)):
while 0 < nums[i] <= len(nums) and nums[i] != nums[nums[i]-1]:
temp = nums[nums[i]-1]
nums[nums[i]-1] = nums[i]
nums[i] = temp
for i in range(len(nums)):
if nums[i] != i+1:
return i+1
return len(nums)+1
print(find_first_missing([3,4,-1,1]))
print(find_first_missing([7,8,9,11,12]))
print(find_first_missing([3,4,1,5,2,6,8,9]))
[小白系列][算法与数据结构]有限空间寻找最小正整数(主要考虑空间复杂度)
猜你喜欢
转载自blog.csdn.net/KaelCui/article/details/105162485
今日推荐
周排行