陣列3 連續子陣列的最大和

2021-07-22 07:06:45 字數 723 閱讀 8634

題目:找到陣列1 -2 3 10 -4 7 2 -5中的最大和

思路:(1)如果前面的和為負值,則加上會使得sum<0,因此要從當前開始重新加

(2)動態規劃方法--遞迴

設sum[i] 為前i個元素中,包含第i個元素且和最大的連續子陣列,result 為已找到的子陣列中和最大的。對第i+1個元素有兩種選擇:做為新子陣列的第乙個元素、放入前面找到的子陣列。

sum[i+1] = max(a[i+1], sum[i] + a[i+1])

result = max(result, sum[i])

特殊情況:考慮全是負數的情況

def searchmaxsum(array):

if len(array)==0:

return 0

max=0

cursum=0

for i in range(0,len(array)-1):

if cursum<=0:

cursum=array[i]

else:

cursum=cursum+array[i]

if cursum>max:

max=cursum

return max

if __name__=="__main__":

array=[1,-2,3,10,-4,7,2,-5]

print searchmaxsum(array)

7 連續子陣列的最大和(子陣列 最大和)

題目 給乙個陣列,讓求連續陣列元素的最大和。public int maxsumofsubarray int arr 思路 連續子陣列的最大和動態規劃 dp i dp i 表示以arr i 結尾的連續子陣列的最大和。arr i 必須加上,就不判斷arr i 是正還是負。dp i 等於arr i 加上以...

27 連續子陣列的最大和

連續子陣列的最大和 hz偶爾會拿些專業問題來忽悠那些非計算機專業的同學。今天測試組開完會後,他又發話了 在古老的一維模式識別中,常常需要計算連續子向量的最大和,當向量全為正數的時候,問題很好解決。但是,如果向量中包含負數,是否應該包含某個負數,並期望旁邊的正數會彌補它呢?例如 連續子向量的最大和為8...

30 連續子陣列的最大和

題目描述 hz偶爾會拿些專業問題來忽悠那些非計算機專業的同學。今天測試組開完會後,他又發話了 在古老的一維模式識別中,常常需要計算連續子向量的最大和,當向量全為正數的時候,問題很好解決。但是,如果向量中包含負數,是否應該包含某個負數,並期望旁邊的正數會彌補它呢?例如 連續子向量的最大和為8 從第0個...