美文网首页
求数组的子数组之和的最大值

求数组的子数组之和的最大值

作者: LEO_青蛙 | 来源:发表于2020-08-23 18:56 被阅读0次

    使用变量preSum存储数组的前N个元素和,如果preSum<0,则重置为0
    使用变量maxSum存储子数组之和的最大值

    int MaxSum(int *arr, int n)
    {
      int preSum = arr[0];
      int maxSum = arr[0];
      for(int i=1; i<n; ++i)
      {
        if(preSum < 0)
          preSum = 0;
        preSum += arr[i];
        if(maxSum < preSum)
          maxSum = preSum;
      }
    }
    

    算法复杂度O(N),只使用了两个变量。

    相关文章

      网友评论

          本文标题:求数组的子数组之和的最大值

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