Maximum Subarray

来源:互联网 发布:淘宝官网 编辑:程序博客网 时间:2024/05/21 13:56

Find the contiguous subarray within an array (containing at least one number) which has the largest sum.

For example, given the array [−2,1,−3,4,−1,2,1,−5,4],

the contiguous subarray [4,−1,2,1] has the largest sum = 6.

class Solution {public:    int maxSubArray(vector<int>& nums)    {        if(nums.size() == 0)        {            return 0;        }            int sum = nums[0];        int max = sum;        vector<int> vec;        for(int i = 1; i < nums.size(); ++ i)        {            if(nums[i] >= 0)            {                if(sum >= 0)                {                    sum += nums[i];                }else                {                    sum = nums[i];                }                if(sum > max)                {                    max = sum;                }            }else            {                if(sum >= 0)                {                    sum += nums[i];                }else                {                    sum = nums[i];                }                if(sum > max)                {                    max = sum;                }            }        }        return max;    }};


0 0
原创粉丝点击