func subarraySum(nums []int, k int) int { cnt, n := 0, len(nums) sum := make([]int, n+1) m := make(map[int]int) m[0]++ for i := 0; i < n; i++ { s := sum[i] + nums[i] if val, ok := m[s-k]; ok { cnt += val } m[s]++ sum[i+1] = s } return cnt }