题解 | #牛群中未找到最小的正整数#
牛群中未找到最小的正整数
https://www.nowcoder.com/practice/99efff129e2244e8af751bbe91a2f159
#
# 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
#
#
# @param nums int整型一维数组
# @return int整型
#
class Solution:
def findMinMissingPositive(self , nums: List[int]) -> int:
# write code here
n =len(nums)
#第一次遍历,将所有非正整数(<= 0)改为 n + 1
for i in range(n):
if nums[i] <= 0:
nums[i] = n+1
# 第二次遍历:将出现的正整数所对应的索引位置的数改为负数
for i in range(n):
num = abs(nums[i])
if 1 <= num <= n:
nums[num -1] = -abs(nums[num-1])
# 第三次遍历:找到第一个正数所对应的索引,返回索引 + 1
for i in range(n):
if nums[i] >0:
return i + 1
# 如果都是正整数,则返回 n+1
return n+1

查看1道真题和解析