Maximum Sum Circular Subarray
mediumTime: O(n)Space: O(1)
Recognize the pattern
max subarray sum in circular arraywrapping allowedtotal minus min subarray
Brute force idea
Check all circular subarrays — O(n²).
Better approach
Max circular = max(Kadane's, totalSum - minSubarraySum). Wrapping case = total minus the minimum non-wrapping middle. O(n).
Key invariant
Wrapping subarray = total - non-wrapping middle. Minimize middle = maximize wrapping.
Watch out for
All negative: minSubarray = total, giving circular = 0. Use normal Kadane's in this case.