嘗試創建一個函數,其中數組a被作爲參數傳遞,返回的是一對索引x,y,使得最大和爲sum(a [x: Y])。例如,假設我的數組爲[4, -2, -3, 7, 3, -1]
。該函數將採用這個數組並且吐出(3,4),因爲從索引3到索引4的數字序列是您可以在此數組中最大的一個序列。 10是你在這個數組中添加任何序列的最大數量。Python數組中一個範圍的最大和
這是我到目前爲止的代碼,它或多或少都有效,但對於數組長度大於10000的數組而言,這是永久的。有什麼建議麼?
def bentley(a):
max = 0
indices = 0,0
for x in range(len(a)):
for y in range(len(a)):
if sum(a[x:y]) > max:
max = sum(a[x:y])
indices = x,y
return indices
你的問題是一個很好的理由來教自己有關的動態規劃http://stackoverflow.com/q/1065433/2282538 – Tyler