u
This commit is contained in:
@@ -0,0 +1,28 @@
|
||||
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))
|
||||
}
|
||||
Reference in New Issue
Block a user