每日leetcode-数组-41. 缺失的第一个正数

分类:数组-统计数组中的元素

题目描述:

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

进阶:你可以实现时间复杂度为 O(n) 并且只使用常数级别额外空间的解决方案吗?

解题思路:

先找到数组中最大的数,如果最大的数是负数的话,设置最大的数为0,然后遍历1到最大值+2的正数有序数组,如果这个数不在数组中,则返回,因为range按由大到小的顺序排列,所以第一个不在数组中的数就是所求的数

class Solution:
    def firstMissingPositive(self, nums: List[int]) -> int:
        maxm = max(nums)
        maxm = max(maxm,0)
        for i in range (1,maxm+2):
            if i not in nums:
                return i
原文地址:https://www.cnblogs.com/LLLLgR/p/14727763.html