思路
用map解决,O(n)
code
func subarraySum1(nums []int, k int) int {
if len(nums) == 0 {
return 0
}
m := make(map[int]int)
m[0] = 1
ans, sum := 0, 0
for _, num := range nums {
sum += num
ans += m[sum-k]
m[sum]++
}
return ans
}
更多内容请移步我的repo:https://github.com/anakin/golang-leetcode