MCPcopy Create free account
hub / github.com/neetcode-gh/leetcode / maxSubarraySumCircular

Function maxSubarraySumCircular

go/0918-maximum-sum-circular-subarray.go:7–26  ·  view source on GitHub ↗
(nums []int)

Source from the content-addressed store, hash-verified

5}
6
7func maxSubarraySumCircular(nums []int) int {
8 globalMax, globalMin := nums[0], nums[0]
9 currentMax, currentMin := 0, 0
10 total := 0
11
12 for _, num := range nums {
13 currentMax = max(num, currentMax+num)
14 currentMin = min(num, currentMin+num)
15 total += num
16 globalMax = max(globalMax, currentMax)
17 globalMin = min(globalMin, currentMin)
18 }
19
20 if globalMax > 0 {
21 return max(globalMax, total-globalMin)
22 } else {
23 return globalMax
24 }
25
26}
27
28func max(a, b int) int {
29 if a > b {

Callers

nothing calls this directly

Calls 2

maxFunction · 0.70
minFunction · 0.70

Tested by

no test coverage detected