題目**
題意:給出乙個陣列,要求乙個子陣列,使得子陣列中所有元素之和最大,輸出最大值以及子陣列的首尾元素。
思路:設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個...