Maximum Sum Circular Subarray LeetCode solution in C++

1
class Solution {
2
public:
3
int maxSubarraySumCircular(vector<int> &nums) {
4
int totalSum = 0, maxSum = INT_MIN, curMax = 0, minSum = INT_MAX, curMin = 0;
5
for (int x : nums) {
6
curMax = max(x, curMax + x); // update the current max subarray sum
7
maxSum = max(maxSum, curMax); // update the overall max subarray sum
8
curMin = min(x, curMin + x); // update the current min subarray sum
9
minSum = min(minSum, curMin); // update the overall min subarray sum
10
totalSum += x;
11
}
12
return maxSum > 0 ? max(maxSum, totalSum - minSum) : maxSum;
13
}
14
};

0

WPM •0 •0

100%

ACC •0 •0

0s

TIME •0