링크
정렬되어있지 않은 배열에서, 존재하지 않는 가장 작은 양수를 O(n), constant memory 사용으로 구하는 문제
def firstMissingPositive(self, nums: List[int]) -> int:
res = 1
change = True
while change:
change = False
for num in nums:
if res == num:
res += 1
change = True
return res
def firstMissingPositive(self, nums: List[int]) -> int:
n = len(nums)
for i in range(n):
if nums[i] <= 0 or nums[i] > n:
nums[i] = n + 1
for i in range(n):
abs_num = abs(nums[i])
if abs_num > n:
continue
nums[abs_num - 1] = -abs(nums[abs_num- 1])
for i in range(n):
if nums[i] > 0:
return i + 1
return n + 1
도움이 많이 되었습니다!