解题思路
设 nums 长度为 n,区间 [1,n+1] 中,第一个未呈现在 nums 中的数即为题目所求
步骤
- 将 nums 转换为 set()
- 遍历 range(1,len(set_num)+1),检测是否这些正整数存在于 nums 中(if i+1 in set 工夫复杂度为 O(1))
- 因为此处遍历 set 而不是 list,所以速度更快
原题链接
欢送在我的博客轻松摸索更多思路
代码
class Solution(object):
def firstMissingPositive(self, nums):
set_num=set(nums)
for i in range(len(set_num)+1):
if i+1 in set_num:
continue
else:
return i+1
return 0