![4bd8e1a6d773109a93725df761fe894a.png](https://img-blog.csdnimg.cn/img_convert/4bd8e1a6d773109a93725df761fe894a.png)
题目描述
给定一个无序数组arr,找到数组中未出现的最小正整数
例如arr = [-1, 2, 3, 4]。返回1
arr = [1, 2, 3, 4]。返回5
[要求]
时间复杂度为O(n)O(n),空间复杂度为O(1)O(1)
示例1
输入:[-1,2,3,4]
返回值: 1
解题思路: 记录最大,最小值,以最小值为1进行判断,虽然不是最简单的代码,但最容易理解
#
# return the min number
# @param arr int整型一维数组 the array
# @return int整型
#
class Solution:
def minNumberdisappered(self , arr ):
# write code here
res = None
if not arr:
return res
min_num = -1
max_num = 0
for i in arr:
if i > 0 and min_num == -1:
min_num = i
elif i > 0 and i < min_num:
min_num = i
if i > 0 and i > max_num:
max_num = i
if min_num == 1:
res = max_num + 1
else:
res = min_num - 1
return res
原文链接:金乌智能 -数组中未出现的最小正整数