我试图解决谦卑中提出的平衡问题。我写了一个解决方案(可能不是最有效的解决方案,但这只是为了锻炼目的)。该解决方案在我的PC上工作,但返回一个在谦卑环境中的错误。这怎么可能?我在哪里搞错了?
问题所在
找出序列的平衡指数,使较低指标的元素之和等于较高指标的元素之和。
我的解决方案
A=[-1, 3, -4, 5, 1, -6, 2, 1]
def solution(A):
results=[]
n=len(A)
P = [0] * (n)
P[0] = A[0]
for k in xrange(1, n):
P[k] = P[k - 1] + A[k]
for p in xrange(1,n):
if P[p-1]==P[n-1]-P[p-1]-A[p]:
results.append(p)
if len(results) <> 0:
return results
else:
return -1编译成功。示例测试:-1,3,-4,5,1,-6,2,1输出(stderr):无效的结果类型,int预期,找到。运行时错误(测试程序意外终止)
发布于 2016-11-01 00:57:37
看起来,在所有情况下,您都应该返回一个整数,而代码在某些情况下返回一个列表,在另一些情况下返回-1。
我认为您可能只是返回第一个结果,因为算法描述似乎没有考虑到解决方案不是唯一的情况。因此,return results[0]而不是return results可能会修复它。
https://stackoverflow.com/questions/40352673
复制相似问题