何が悪いのかわからない。おそらく配列の制限を超えたと思います。
def lcs(arr):
if len(arr) == 0: # arr of length 0
return
sumarr = []
counter = 0
sum = 0
for i in arr:
if arr[i] > 0:
sum = sum + arr[i]
if arr[i] < 0:
sumarr[counter] = sum
counter += 1
print max(sumarr)
私が得るエラーは次のとおりです。
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "<stdin>", line 8, in lcs
IndexError: list index out of range
#
コードを少し修正しました
def lcs(arr):
if len(arr) == 0: # arr of length 0
return
sumarr = []
counter = 0
sum = 0
for i in arr:
if i > 0:
sum = sum + i
if i < 0:
sumarr[counter] = sum
counter += 1
print max(sumarr)
ただし、このエラーが発生します
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "<stdin>", line 13, in lcs
ValueError: max() arg is an empty sequence
私は自分の sumarr[] を常に更新していると思っていました。空のリストを max() に渡しているというエラーが表示されるのはなぜですか?