原文链接http://blog.nlogn.cn/programming-pearls-the-maximum-sum-of-substring/
这里头有介绍相应的O(n)解法,查过了同样的问题,不过只有代码,没说对思路
看完之后,会觉得其实很简单,就是当前值要不要把前面的值加上去
下面直接提供一个AC的代码
//find the continunous sun
int func(vector<int>& a) {
int last_adding = 0;
int max_result = a[0];
for (int i = 0; i < a.size()-1; i++) {
last_adding += a[i];
if (last_adding < 0)
last_adding = 0;
max_result = max(a[i + 1] + last_adding, max_result);
}
return max_result;
}