私は、Codilityで提示された平衡問題を解決しようとしています。私は解決策を書いた(恐らく最も効率的なものではないが、これは単に運動目的のためである)。このソリューションは私のPCで動作しますが、Codility環境でエラーを返します。これはどのように可能ですか?私はどこでミスをしていますか?python - 配列の平衡を見つけるエラー - エラー
The problem
低いインデックスでの要素の合計がより高いインデックスでの要素の和に等しくなるように配列の平衡インデックスを検索します。
マイソリューション
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が必要です。 が見つかりました。ランタイムエラー(テストされたプログラムが予期せず終了しました)
配列内の最初または任意の平衡値のインデックスを返します。あなたは 'results'でリストを返しています。 – choz
いいえ。たとえば、 'A = [-1,3,4,5,1、-6,2,1]'、 '3'は平衡値です。 '3 'のインデックス、' 1'を返す必要があります。 'A [1]は3 'なので。 – choz
@ choz 3,5,1または[3,5,1]のようなもの? – Chris