分类:数组-统计数组中的元素
题目描述:
给你一个未排序的整数数组 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