題目:找到陣列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個...