(毎日の練習c ++)最大サブシーケンス合計

最大サブオーダー合計

整数の配列が与えられた場合、 nums 合計が最大の連続したサブ配列を見つけ(サブ配列には少なくとも1つの要素が含まれます)、最大の合計を返します。

例1:

入力: nums = [-2,1、-3,4、-1,2,1、-5,4]
出力: 6
説明:連続するサブ配列[4、-1,2,1]の最大合計は6です。 。

例2:

入力: nums = [1]
出力: 1

例3:

入力: nums = [0]
出力: 0

例4:

入力: nums = [-1]
出力: -1

例5:

入力: nums = [-100000]
出力: -100000

ヒント:

  • 1 <= nums.length <= 3 * 10^4
  • -10^5 <= nums[i] <= 10^5
#include <bits/stdc++.h>
using namespace std;
class Solution
{
public:
    int maxSubArray(vector<int> &nums)
    {
        int sum = 0, max_sum = INT_MIN;
        for (int i = 0; i < nums.size(); i++)
        {
            if (sum < 0)
            {
                sum = nums[i];
            }
            else
            {
                sum += nums[i];
            }
            max_sum = max(sum, max_sum);
        }
        return max_sum;
    }
};

おすすめ

転載: blog.csdn.net/dwf1354046363/article/details/123009665