0058 连续子数组的最大和

    xiaoxiao2025-04-30  17

    今天在牛客上做的一题,求连续子数组的最大值。

    思路:

    1)当当前和的值小于0,则丢弃,以下一个值作为新起点求和;

    2)如果当前和的值大于记录的最大值,则更新最大值。

    代码如下:

    int FindGreatestSumOfSubArray(vector<int> array) { if(array.empty()) return 0; int maxSumOfSubArray = std::numeric_limits<int>::min();//初始化为计算机整型最小值 int currentSum = 0; int start=0; int len = array.size(); while(start<len) { if(currentSum<=0)//和小于0则放弃前面记录的和,因为前面已经成为负担,不需要 currentSum = array[start]; else currentSum += array[start]; if(currentSum > maxSumOfSubArray) maxSumOfSubArray = currentSum; ++start; } return maxSumOfSubArray; }

    转载请注明原文地址: https://ju.6miu.com/read-1298604.html
    最新回复(0)