Files
leetcode/top-100-liked/10_test.go
T
2026-05-31 05:06:57 +10:00

29 lines
590 B
Go

package top100liked
import "testing"
// https://leetcode.cn/problems/subarray-sum-equals-k/description/?envType=study-plan-v2&envId=top-100-liked
// 这题好难,理解不能
func subarraySum(nums []int, k int) int {
freq := make(map[int]int)
freq[0] = 1
cur := 0
res := 0
for _, v := range nums {
cur += v
if f, ok := freq[cur-k]; ok {
res += f
}
freq[cur]++
}
return res
}
func TestS10(t *testing.T) {
println(subarraySum([]int{1, 1, 1}, 2))
println(subarraySum([]int{1, 2, 3}, 3))
println(subarraySum([]int{1}, 0))
println(subarraySum([]int{-1, -1, 1}, 0))
}