动态规划,之前做了几个动态规划都是用dp[i-1]来推导dp[i],但是这里不是这么简单的。
https://labuladong.gitbook.io/algo/dong-tai-gui-hua-xi-lie/1.2-zi-xu-lie-lei-xing-wen-ti/zui-da-zi-shu-zu
class Solution {
public:
int FindGreatestSumOfSubArray(vector<int> array) {
//主要是写出转移方程
//这题的dp[i]是以array[i]为结尾的最大子数组和,最后需要遍历整个dp数组来找到最大连续子数组的和
//转移方程用数学归纳法
int n = array.size();
if(n == 0) return 0;
int dp[n], res = array[0];
dp[0] = array[0];
for(int i = 1; i < n; ++i){
dp[i] = max(array[i],dp[i-1]+array[i]);
res = max(res,dp[i]);
}
return res;
}
};