class Solution:
def firstMissingPositive(self, nums: List[int]) -> int:
missing = 1
while True:
flag = True
for num in nums:
if missing == num:
flag = False
break
if flag:
return missing
missing += 1class Solution:
def firstMissingPositive(self, nums: list[int]) -> int:
n = len(nums)
seen = [False] * n
for num in nums:
if num > 0 and num <= n:
seen[num - 1] = True
for num in range(1, n + 1):
if not seen[num - 1]:
return num
return n + 1class Solution:
def firstMissingPositive(self, nums: list[int]) -> int:
nums.sort()
missing = 1
for num in nums:
if num > 0 and missing == num:
missing += 1
return missingclass Solution:
def firstMissingPositive(self, nums: list[int]) -> int:
for i in range(len(nums)):
if nums[i] < 0:
nums[i] = 0
for i in range(len(nums)):
val = abs(nums[i])
if 1 <= val <= len(nums):
if nums[val - 1] > 0:
nums[val - 1] *= -1
elif nums[val - 1] == 0:
nums[val - 1] = -1 * (len(nums) + 1)
for i in range(1, len(nums) + 1):
if nums[i - 1] >= 0:
return i
return len(nums) + 1class Solution:
def firstMissingPositive(self, nums: list[int]) -> int:
n = len(nums)
i = 0
while i < n:
if nums[i] <= 0 or nums[i] > n:
i += 1
continue
index = nums[i] - 1
if nums[i] != nums[index]:
nums[i], nums[index] = nums[index], nums[i]
else:
i += 1
for i in range(n):
if nums[i] != i + 1:
return i + 1
return n + 1