diff --git a/918-240623/main.cpp b/918-240623/main.cpp new file mode 100644 index 0000000..52e13de --- /dev/null +++ b/918-240623/main.cpp @@ -0,0 +1,14 @@ +class Solution { +public: + int maxSubarraySumCircular(vector& A) { + int sum = 0, mn = INT_MAX, mx = INT_MIN, curMax = 0, curMin = 0; + for (int num : A) { + curMin = min(curMin + num, num); + mn = min(mn, curMin); + curMax = max(curMax + num, num); + mx = max(mx, curMax); + sum += num; + } + return (sum - mn == 0) ? mx : max(mx, sum - mn); + } +};