题解 | #缺失的第一个正整数#
缺失的第一个正整数
http://www.nowcoder.com/practice/50ec6a5b0e4e45348544348278cdcee5
class Solution:
def minNumberDisappeared(self , nums: List[int]) -> int:
# write code here
n = len(nums)
# 原地哈希
# nums[i] < 0 表示 i+1 出现过
# 为排除原有负数的影响,将所有负数置为 n+1
for i, num in enumerate(nums):
if num <= 0:
nums[i] = n + 1
for num in nums:
x = abs(num)
if x <= n:
nums[x-1] = -abs(nums[x-1])
for i, num in enumerate(nums):
if num > 0:
return i + 1
return n + 1