发现前几篇解题都有些小问题,好多分治法都是默认末尾存储最大值,但当原数组尾部为负数会出问题,每次遍历都得存储当前的最大和就不会出错了。
class Solution {
public:
/**
* max sum of the subarray
* @param arr int整型vector the array
* @return int整型
*/
int maxsumofSubarray(vector<int>& arr) {
// write code here
int maxsum=arr[0];
for(int i=1;i<arr.size();++i){
arr[i]=max(arr[i],arr[i-1]+arr[i]);
maxsum=max(maxsum,arr[i]);
}
return maxsum;
}
};</int>