动态规划学习笔记1
求連續子數組的最大和問題
代碼不重要!重要的是思想過程(括弧 好難啊!!!)
輸入的數組為{1,-2,3,10,-4,7,2,-5},和最大的子數組為{3,10,-4,7,2},輸出連續子數組的最大和是18。
| 1 | +1 | 1 | 1 |
| 2 | -2 | -1 | 1 |
| 3 | 拋棄前面的(+1 - 2 ) ,加3 | 3 | 3 |
| 4 | +10 | 13 | 13 |
| 5 | -4 | 9 | 13 |
| 6 | +7 | 16 | 16 |
| 7 | +2 | 18 | 18 |
| 8 | -5 | 13 | 18 |
動態規劃:
遞歸公式:
f(i)={pData,i=0或者f(i?1)≤0f(i?1)+pData[i],i!=0并且f(i?1)>0f(i)=\begin{cases} pData, i = 0 或者f(i-1)\leq 0\\ f(i-1) + pData[i], i != 0 并且 f(i-1)>0 \end{cases} f(i)={pData, i=0或者f(i?1)≤0f(i?1)+pData[i], i!=0并且f(i?1)>0?
總結