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) }