From c87d1764755ffb1ce2c5ebc7c7edf2fdc911bd05 Mon Sep 17 00:00:00 2001 From: Matej Focko Date: Sat, 22 Jun 2024 19:42:32 +0200 Subject: [PATCH] =?UTF-8?q?go:=20add=20=C2=AB1248.=20Count=20Number=20of?= =?UTF-8?q?=20Nice=20Subarrays=C2=BB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Matej Focko --- go/count-number-of-nice-subarrays.go | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) create mode 100644 go/count-number-of-nice-subarrays.go diff --git a/go/count-number-of-nice-subarrays.go b/go/count-number-of-nice-subarrays.go new file mode 100644 index 0000000..4f9d227 --- /dev/null +++ b/go/count-number-of-nice-subarrays.go @@ -0,0 +1,23 @@ +package main + +func numberOfSubarrays(nums []int, k int) int { + atMost := func(k int) int { + subarrays := 0 + + window, start := 0, 0 + for end := range nums { + window += nums[end] % 2 + + for window > k { + window -= nums[start] % 2 + start++ + } + + subarrays += end - start + 1 + } + + return subarrays + } + + return atMost(k) - atMost(k-1) +}