[leetcode]Maximum Subarray

来源:互联网 发布:软件使用 编辑:程序博客网 时间:2024/06/06 20:59
//统计nums[i]之前的sum值,如果这个值大于0,则拼接之前的序列,否则新的序列从i开始//保留一个全局最大值,每次得到的candidate都和它比较class Solution {public:    int maxSubArray(vector<int>& nums)     {        int len=nums.size();        if(len<1)            return 0;        if (len==1)            return nums[0];                int sum=nums[0];        int ret=nums[0];        int i=0;        int j=1;        while(i<len&&j<len)        {            if(sum>=0)            {                    sum+=nums[j];                 j++;            }            else if(sum<0)            {                 i=j;//若要返回下标,此时start=i;                 sum=nums[i];                 j++;            }            ret=max(ret,sum);//若要返回下标,此时end=j;        }        return ret;    }};

0 0
原创粉丝点击