最大和子陣列 動態規劃

2021-09-26 21:19:19 字數 734 閱讀 5415

題目**

題意:給出乙個陣列,要求乙個子陣列,使得子陣列中所有元素之和最大,輸出最大值以及子陣列的首尾元素。

思路:設d[i]為以第i個元素結尾即num[i]元素結尾的子陣列元素最大和

d[i]=max

設p[i]為以第i個元素結尾的子陣列的首元素的下標

當d[i]=d[i-1]+num[i]時,p[i]=p[i-1]

當d[i]=num[i]時,p[i]=i

**如下:

#include

using

namespace std;

const

int maxn=

10005

;int num[maxn]

;int d[maxn]

;int p[maxn]

;int

main()

d[0]

=num[0]

; p[0]

=0;for

(int i=

1;i)else

}int ans=

-0x3f3f3f3f

,index;

for(

int i=

0;iif(ans<

0)cout<<

0<<

" "<<<

" "<

" "<

}

動態規劃 連續子陣列的最大和

使用動態規劃 f i 以array i 為末尾元素的子陣列的和的最大值,子陣列的元素的相對位置不變 f i max f i 1 array i array i res 所有子陣列的和的最大值 res max res,f i 如陣列 6,3,2,7,15,1,2,2 初始狀態 f 0 6 res 6 ...

動態規劃搞最大和連續子陣列

給定乙個整數陣列 nums 找到乙個具有最大和的連續子陣列 子陣列最少包含乙個元素 返回其最大和。示例 輸入 2,1,3,4,1,2,1,5,4 輸出 6 解釋 連續子陣列 4,1,2,1 的和最大,為 6。剛看到這個題時,作為小白第一反應就是找到每乙個子陣列的和比較,那樣的話,就是三個for迴圈,...

動態規劃 連續子陣列的最大和

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