最近写了一道笔试题,题目:给定一个由N个整数组成的数组A,返回A中不出现的最小正整数(大于0)
例如:给定A=[1,3,6,4,1,2],返回5
给定A=[1,2,3],返回4
给定A=[-1,-3],返回1
python解决方案如下所示:
def solution(A):
A.sort()
c=max(A)
i=0
new_A = []
for i in range(len(A)):
if A[i] >= 0:
new_A.append(A[i])
i += 1
print(new_A)
if c<=0:
return 1
if c>0:
for j in range(len(new_A)):
if new_A[0] >= 2:
return 1
if new_A[0] < 2 and new_A[j+1]-new_A[j] <= 1:
j += 1
if j == len(new_A)-1:
return c+1
elif new_A[0] < 2 and new_A[j+1]-new_A[j] >= 2:
return new_A[j]+1
# solution([0,0,0])
# solution([1,1,1])
solution([5,6,6])
# solution([2, 4, 7, 1, -3, 0, 5])
# solution([-1,-2,3])
# solution([-1,-3])
# solution([-1,-2,-3,6])版权声明:本文为weixin_37986839原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。