当前位置 博文首页 > Lina Shi的博客:leetcode 41. 缺失的第一个正数 (超级简单的解

    Lina Shi的博客:leetcode 41. 缺失的第一个正数 (超级简单的解

    作者:[db:作者] 时间:2021-09-03 18:21

    leetcode 41. 缺失的第一个正数 (超级简单的解法)

    题目描述

    给定一个未排序的整数数组,找出其中没有出现的最小的正整数。

    示例 1:

    输入: [1,2,0]
    输出: 3
    

    示例 2:

    输入: [3,4,-1,1]
    输出: 2
    

    示例 3:

    输入: [7,8,9,11,12]
    输出: 1
    

    说明:

    你的算法的时间复杂度应为O(n),并且只能使用常数级别的空间。

    解题思路

    题目的要求是找到没有出现过的最小正整数,最小的正整数是1,如果1没出现过,那么答案就是1,否则,自增1,继续看2是否在列表中。下面的代码是python版本,如果用c或c++来写的话,需要自己用一个哈希做映射。

    代码

    class Solution:
        def firstMissingPositive(self, nums: List[int]) -> int:
            res = 1
            while res in nums:
                res += 1
            return res
    
    cs