发下我写的非常满意又有点投机取巧的一道题,写的比官方题解少行时间复杂度和内存也适中,问的是缺失的第一个正数,就说明可能存在负数和0,那么对应的字典counter就从1取起到len(nums)+1截止。
[1, len(nums) + 1]
是为了确保我们检查所有可能的正整数,包括数组中可能缺失的正整数,以及数组中包含所有正整数时的下一个正整数(空两个位检查),最多检查到len(nums)+1的位置~
题目链接:41. 缺失的第一个正数 - 力扣(LeetCode)
from collections import Counter
class Solution:
def first(self,nums):
counter=Counter(nums)
for i in range(1,len(nums)+2):
if i not in counter:
return i
z