解题思路

设nums长度为n,区间[1,n+1]中,第一个未呈现在nums中的数即为题目所求

步骤

  1. 将nums转换为set()
  2. 遍历range(1,len(set_num)+1),检测是否这些正整数存在于nums中(if i+1 in set工夫复杂度为O(1))
  3. 因为此处遍历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