41. 缺失的第一个正数

题目描述

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

示例 1:

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

示例 2:

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

示例 3:

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

说明:

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

解析

直接遍历数组, 将值当成 key value=1 组成字典, 因为要找出最小的正数, 所以用一个while循环从1开始, 检查字典里面有没有这个 key , 没有就直接 return 结果

我的代码

class Solution:
    def firstMissingPositive(self, nums: List[int]) -> int:
        num_dict = {}
        
        for val in nums:
            num_dict[val] = 1
        
        i = 1
        while i:
            if(num_dict.get(i) is None):
                return i
            
            i += 1

展开阅读全文
©️2020 CSDN 皮肤主题: 编程工作室 设计师: CSDN官方博客 返回首页
实付0元
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值