编写一个函数,给定一个包含 N 个 int 的 A 数组,返回 A 中未出现的最小正数(大于 0)。
我决定在排序后通过迭代列表来解决这个问题。当前元素的值将与下一个元素的值进行比较。因为列表是排序的,所以列表应该按顺序排列,直到最后。但是,如果有跳过的数字,则表示列表中没有出现的最小数字。如果它一直持续到最后,那么你应该在最后一个元素的值上加一。
def test():
arr = [23,26,25,24,28]
arr.sort()
l = len(arr)
if arr[-1] <= 0:
return 1
for i in range(0,l):
for j in range(1,l):
cur_val = arr[i]
next_val = arr[j]
num = cur_val + 1
if num != next_val:
return num
if num == next_val: //if completes the list with no skips
return arr[j] + 1
print(test())