leetcode

Solution to some Leetcode problems written in C++
git clone git://git.dimitrijedobrota.com/leetcode.git
Log | Files | Refs | README | LICENSE

0918.cpp (508B)


0 class Solution {
1 public:
2 int maxSubarraySumCircular(vector<int> &nums) {
3 int total, maxSum, curMax, minSum, curMin;
5 total = curMax = curMin = 0;
6 maxSum = minSum = nums[0];
7 for (int &n : nums) {
8 curMax = max(curMax + n, n);
9 maxSum = max(maxSum, curMax);
10 curMin = min(curMin + n, n);
11 minSum = min(minSum, curMin);
12 total += n;
13 }
14 return maxSum > 0 ? max(maxSum, total - minSum) : maxSum;
15 }
16 };