1. 程式人生 > >python leetcode 41. First Missing Positive

python leetcode 41. First Missing Positive

考察在陣列上的操作,nums[0]=1,nums[1]=2…按照這個順序在陣列上移動元素。然後在遍歷如果nums[index]!=index+1 那麼就找到了最小的丟失數。 這裡我們對陣列中數進行判斷,而不是下標,不然會死迴圈(例如[2,2,2,2])

class Solution:
    def firstMissingPositive(self, nums):
        """
        :type nums: List[int]
        :rtype: int
        """
        n=len(nums)
        if n==
0: return 1 i=0 while i<n: cur=nums[i] if cur<=0 or cur> n or cur==nums[cur-1]: i+=1 else: nums[cur-1],nums[i]=nums[i],nums[cur-1] for l in range(n): if l+1!=nums[l]: return
l+1 return n+1