Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- int maxSubarraySumCircular(vector<int>& A) {
- int total = 0, maxSum = -30000, curMax = 0, minSum = 30000, curMin = 0;
- for (int a : A) {
- curMax = max(curMax + a, a);
- maxSum = max(maxSum, curMax);
- curMin = min(curMin + a, a);
- minSum = min(minSum, curMin);
- total += a;
- }
- return maxSum > 0 ? max(maxSum, total - minSum) : maxSum;
- }
Add Comment
Please, Sign In to add comment