leetcodeSolution 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; 4 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 };