看了前面的解答,都有问题,自测调试用示例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;
}
}; 
京公网安备 11010502036488号