leetcode刷题python之缺失的第一个正数

class Solution:
    def firstMissingPositive(self, nums: List[int]) -> int:
        length = len(nums)
        for i in range(length):
            while 0 < nums[i] <= length and (nums[i] != nums[nums[i] - 1]):  #不能直接用index,使用的话会导致判断错误,index并不是value,还是应该使用值
                self.__exchange(nums , i ,nums[i] - 1)  #需要使用函数来把索引的值固化,否则直接用容易出错

        for i in range(length):
            if nums[i] != i + 1:
                return i + 1

        return length+1

    def __exchange(self , nums , index1 , index2):
        nums[index1], nums[index2] = nums[index2], nums[index1]

版权声明:本文为leileii原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。