【发布时间】:2020-06-20 08:51:13
【问题描述】:
我参加了以下代码演示任务 写一个函数:
定义解(A)
给定一个包含 N 个整数的数组 A,返回在 A 中没有出现的最小正整数(大于 0)。
例如,给定 A = [1, 3, 6, 4, 1, 2],函数应该返回 5。
给定 A = [1, 2, 3],函数应该返回 4。
给定 A = [−1, −3],函数应该返回 1。
为以下假设编写一个有效的算法:
N 是 [1..100,000] 范围内的整数; 数组 A 的每个元素都是 [−1,000,000..1,000,000] 范围内的整数。
我的解决方案
def solution(A):
# write your code in Python 3.6
l = len(A)
B = []
result = 0
n = 0
for i in range(l):
if A[i] >=1:
B.append(A[i])
if B ==[]:
return(1)
else:
B.sort()
B = list(dict.fromkeys(B))
n = len(B)
for j in range(n-1):
if B[j+1]>B[j]+1:
result = (B[j]+1)
if result != 0:
return(result)
else:
return(B[n-1]+1)
虽然我尝试的所有输入都得到了正确的输出,但我的分数只有 22%。有人可以强调我哪里出错了。
【问题讨论】:
-
"我的分数只有 22%" 你能解释一下你的意思吗?是否存在导致错误结果的自动化测试?您能否提供失败案例的输入、预期输出和实际输出?
标签: python python-3.x