简单动态规划:dp[i]是以位置i结束的最大和,动态转移方程dp[i] = max(dp[i-1]+array[i], array[i]),dp中的最大值即是结果。
class Solution { public: int FindGreatestSumOfSubArray(vector<int> array) { int dp[array.size()+5]; dp[0] = array[0]; int maxx = array[0]; for(int i = 1; i < array.size(); i++){ dp[i] = max(dp[i-1] + array[i], array[i]); maxx = max(maxx, dp[i]); } return maxx; } };