首先看题目描述

子数组的最大累加和_子数组

 

题意不难理解,主要是思路

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;
    }