博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
LeetCode41. First Missing Positive(思路及python解法)
阅读量:2241 次
发布时间:2019-05-09

本文共 681 字,大约阅读时间需要 2 分钟。

Given an unsorted integer array, find the smallest missing positive integer.

Example 1:

Input: [1,2,0]Output: 3

Example 2:

Input: [3,4,-1,1]Output: 2

Example 3:

Input: [7,8,9,11,12]Output: 1

找到第一个缺失的正数。

有很多种方法,但是要求O(n) time and uses constant extra space。

我用一个bool的数组记录每个数字出现,然后返回第一个为False的数字。

记录过程中去掉小于0的数和大于len(nums)的数。如果全是True就返回len(nums)+1,因为正数从1开始而不是0。

class Solution:    def firstMissingPositive(self, nums: List[int]) -> int:        l=len(nums)+1        dp=[True]+[False for _ in range(l-1)]        for num in nums:            if num<0 or num>l-1:continue            dp[num]=True        for i in range(l):            if dp[i] is False:                return i        return l

 

转载地址:http://pcrbb.baihongyu.com/

你可能感兴趣的文章
手把手用 IntelliJ IDEA 和 SBT 创建 scala 项目
查看>>
GAN 的 keras 实现
查看>>
AI 在 marketing 上的应用
查看>>
Logistic regression 为什么用 sigmoid ?
查看>>
Logistic Regression 为什么用极大似然函数
查看>>
SVM 的核函数选择和调参
查看>>
LightGBM 如何调参
查看>>
用 TensorFlow.js 在浏览器中训练神经网络
查看>>
cs230 深度学习 Lecture 2 编程作业: Logistic Regression with a Neural Network mindset
查看>>
梯度消失问题与如何选择激活函数
查看>>
为什么需要 Mini-batch 梯度下降,及 TensorFlow 应用举例
查看>>
为什么在优化算法中使用指数加权平均
查看>>
初探Java设计模式5:一文了解Spring涉及到的9种设计模式
查看>>
Java集合详解1:一文读懂ArrayList,Vector与Stack使用方法和实现原理
查看>>
Java集合详解2:一文读懂Queue和LinkedList
查看>>
Java集合详解3:一文读懂Iterator,fail-fast机制与比较器
查看>>
Java集合详解4:一文读懂HashMap和HashTable的区别以及常见面试题
查看>>
Java集合详解5:深入理解LinkedHashMap和LRU缓存
查看>>
Java集合详解6:这次,从头到尾带你解读Java中的红黑树
查看>>
Java集合详解8:Java集合类细节精讲,细节决定成败
查看>>