LintCode_041_最大子数组

来源:互联网 发布:清华在线网络教育平台 编辑:程序博客网 时间:2024/06/03 19:26

问题描述

给定一个整数数组,找到一个具有最大和的子数组,返回其最大和。

注意事项

子数组最少包含一个数

样例

给出数组[−2,2,−3,4,−1,2,1,−5,3],符合要求的子数组为[4,−1,2,1],其最大和为6

求解

class Solution{  public:    int maxSubArray(vector<int> nums)    {        int maxSum = 0;        int curSum = 0;        for (auto it = nums.begin(); it != nums.end(); ++it)        {            if (it == nums.begin())            {                maxSum = *it;            }            curSum += *it;            if (curSum > maxSum)            {                maxSum = curSum;            }            if (curSum < 0)            {                curSum = 0;            }        }        return maxSum;    }};