首先看题目描述
题意不难理解,主要是思路
1、设置一个变量maxresult存储全局最大值,一个变量curresult存储当前的和;
2、然后开始遍历数组:
1)将curresult加上当前的值获得新curresult;
2)如果新curresult小于0,则重置curresult为0,并继续下一循环;
3)如果新curresult大于maxresult,则更新maxresult;
代码实现如下:
int maxsumofSubarray(vector<int>& arr) { // write code here int maxresult = 0; int curresult = 0; for(int i = 0;i<arr.size();i++) { curresult += arr[i]; if(curresult < 0) { curresult = 0; } if(curresult > maxresult) { maxresult = curresult; } } return maxresult; }