关于leetcode:困难题目简单解-speed-90-Hard-First-Missing-Positive-缺失的第一个正整数

30次阅读

共计 317 个字符,预计需要花费 1 分钟才能阅读完成。

解题思路

设 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



正文完
 0