看了前面的解答,都有问题,自测调试用示例1的输入输出都通过不了。我的想法是:
总的来说,解题思路就是从前往后推,要保证每个位置的值都起码比原本的大。注意每次都要用m保存当前时刻的最大累积和,最后直接返回就ok。

class Solution {
public:
    int maxsumofSubarray(vector<int>& arr) {
        int m = arr[0]; // 保存最大累加和
        for(int i = 1 ; i<arr.size() ; i++)
        {
            arr[i] = max(arr[i] , arr[i-1]+arr[i]);
            m = max(m, arr[i]);
        }
        return m;
    }
};