题解 | #缺失的第一个正整数#
缺失的第一个正整数
https://www.nowcoder.com/practice/50ec6a5b0e4e45348544348278cdcee5
#
# 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
#
#
# @param nums int整型一维数组
# @return int整型
#
class Solution:
def minNumberDisappeared(self , nums: List[int]) -> int:
n = len(nums)
mp = dict()
#哈希表记录数组中出现的每个数字
for i in range(n):
if nums[i] in mp:
mp[nums[i]] += 1
else:
mp[nums[i]] = 1
res = 1
#从1开始找到哈希表中第一个没有出现的正整数
while res in mp:
res += 1
return res
该题可以直接对列表升序然后查找,但是在列表中查询的某个数的时间复杂度是o(n),但是放入哈希表查询,查询的时间复杂度是o(1).
该解法时间复杂度和空间复杂度都是o(n)