diff --git a/solution/2444/main.go b/solution/2444/main.go new file mode 100644 index 0000000..77c4542 --- /dev/null +++ b/solution/2444/main.go @@ -0,0 +1,26 @@ +package main + +func countSubarrays(nums []int, minK int, maxK int) int64 { + var res int64 + left := 0 + pmin := -1 + pmax := -1 + + for right, num := range nums { + if num < minK || num > maxK { + left = right + 1 + pmin = -1 + pmax = -1 + } else { + if num == minK { + pmin = right + } + if num == maxK { + pmax = right + } + res += int64(max(0, min(pmin, pmax) - left + 1)) + } + } + + return res +}