Skip to content

Latest commit

 

History

History
33 lines (23 loc) · 634 Bytes

41.md

File metadata and controls

33 lines (23 loc) · 634 Bytes

[41] First Missing Positive

Description

link


Solution

  • See Code

Code

O(n)

class Solution:
    def firstMissingPositive(self, nums: List[int]) -> int:
        i = 0
        while i < len(nums):
            if nums[i] > 0 and nums[i] <= len(nums) and nums[nums[i] - 1] != nums[i]:
                nums[nums[i] - 1], nums[i] = nums[i], nums[nums[i] - 1]
            else:
                i += 1
        
        for i in range(len(nums)):
            if i != nums[i] - 1:
                return i + 1
        return len(nums) + 1