[小白系列][算法与数据结构]有限空间寻找最小正整数(主要考虑空间复杂度)

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]))
发布了5 篇原创文章 · 获赞 5 · 访问量 130

猜你喜欢

转载自blog.csdn.net/KaelCui/article/details/105162485