剑指offer 连续子数组的最大和

 

 简单动态规划: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;
    }
};

 

posted @ 2020-11-16 19:45  Xycdada  阅读(45)  评论(0编辑  收藏  举报