最大サブオーダー合計
整数の配列が与えられた場合、 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;
}
};