First Missing Positive LeetCode solution in Python
1# Runtime: 295 ms (Top 90.42%) | Memory: 28 MB (Top 72.11%)2class Solution:3def firstMissingPositive(self, nums: List[int]) -> int:4mn = float("inf")5mx = 06numsSet = set()78for i in range(len(nums) - 1, -1, -1):9if nums[i] > 0:10if nums[i] < mn:11mn = nums[i]12if nums[i] > mx:13mx = nums[i]14numsSet.add(nums[i])15del nums[i]1617if mn >= 2:18return 119if len(numsSet) == mx:20return mx + 121for i in range(2, len(numsSet) + 1):22if i not in numsSet:23return i