0
這裏是我的代碼,這應該返回45作爲答案,而不是我得到8。 此代碼適用於較小的列表。找到列表中最長的運行總和
我得到正確的答案這個名單[1,2,3,2,1] 6
def longest_run(L):
bestDec = 0
bestInc = 0
currentSum = 0
lastNum = 0
for i in L:
if i <= lastNum:
currentSum += i
else:
if currentSum > bestDec:
bestDec = currentSum
currentSum = i
lastNum = i
currentSum = 0
lastNum = 0
for i in L:
if i >= lastNum:
currentSum += i
else:
if currentSum > bestInc:
bestInc = currentSum
currentSum = i
lastNum = i
if bestDec >= bestInc:
return bestDec
else:
return bestInc
L = [1, 2, 3, 4, 5, 6, 7, 8, 9]
print(longest_run(L))
你的問題不清楚。 「跑步」是什麼意思? (我們不應該檢查你的代碼來解決這個問題。)如果有多個相同的最大長度運行,應該返回什麼? –
我使用類來解決這個期末考試問題,將其分解爲子問題。該問題要求您查找升序或降序值的最長運行(連續序列),假設L是整數列表。我有兩個具有類似行爲的類,除了一個反轉比較邏輯。這個超級類別處理所有其他事情。我會分享解決方案,除非在考試截止日期過後我不應該這樣做。 –