美文网首页
#常见面试算法题

#常见面试算法题

作者: jameiShi | 来源:发表于2018-02-07 17:30 被阅读20次

阅读目录

*求数组最大连续子序列之和


1.求数组最大连续子序列之和

一个有N个元素的整型数组arr,有正有负,数组中连续一个或多个元素组成一个子数组,这个数组当然有很多子数组,求子数组之和的最大值。例如:[0,-2,3,5,-1,2]应返回9,[-9,-2,-3,-5,-3]应返回-2。
思路 :在每次元素累加和小于0时,从下一个元素重新开始累加

int Maxsum_ultimate(int * arr, int size)
{
    int maxSum = 0;
    int sum = 0;
    for(int i = 0; i < size; ++i)
    {
        if(sum < 0)
        {
            sum = arr[i];
        }else
        {
            sum += arr[i];
        }
        if(sum > maxSum)
        {
            maxSum = sum;
        }
    }
    return maxSum;
}

相关文章

网友评论

      本文标题:#常见面试算法题

      本文链接:https://www.haomeiwen.com/subject/uwjazxtx.html