算法筆記——【動態規劃】最大子段和

 問題定義:對於給定序列a1,a2,a3……an,尋找它的某個連續子段,使得其和最大。如( -2,11,-4,13,-5,-2 )最大子段是{ 11,-4,13 }其和爲20。

動態規劃算法求解

    算法思路如下:

    記,則所求的最大子段和爲:

    由b[j]的定義知,當b[j-1]>0時,b[j]=b[j-1]+a[j],否則b[j]=a[j]。由此可得b[j]的動態規劃遞推式如下:

     b[j]=max{b[j-1]+a[j],a[j]},1<=j<=n。

     具體代碼如下:



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章