From 4c4dae49a494979e5cb15f9f363f82b59a119ab5 Mon Sep 17 00:00:00 2001 From: Matej Focko Date: Sun, 9 Jun 2024 12:27:13 +0200 Subject: [PATCH] =?UTF-8?q?go:=20add=20=C2=AB974.=20Subarray=20Sums=20Divi?= =?UTF-8?q?sible=20by=20K=C2=BB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Matej Focko --- go/subarray-sums-divisible-by-k.go | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) create mode 100644 go/subarray-sums-divisible-by-k.go diff --git a/go/subarray-sums-divisible-by-k.go b/go/subarray-sums-divisible-by-k.go new file mode 100644 index 0000000..ce0e9be --- /dev/null +++ b/go/subarray-sums-divisible-by-k.go @@ -0,0 +1,18 @@ +package subarray_sums_divisible_by_k + +func subarraysDivByK(nums []int, k int) int { + counters := make([]int, k) + counters[0] = 1 + + total := 0 + + runningMod := 0 + for _, num := range nums { + runningMod = (k + runningMod + num%k) % k + + total += counters[runningMod] + counters[runningMod]++ + } + + return total +}