0. 题目
1. 暴力枚举 o(n^2) o(1)
2. 前缀和 + 哈希表优化 o(n) o(n)
字典/哈希表 存储 前缀和: 现在的前缀和-曾经的前缀和 = k
## 字典/哈希表 存储 前缀和: 现在的前缀和-曾经的前缀和=k
class Solution(object):
def subarraySum(self, nums, k):
pre_sum_dict = collections.defaultdict(int)
pre_sum_dict[0] = 1 #dict={0:1} 前缀和为0,存在
c = 0
pre_sum = 0
for x in nums:
pre_sum += x
if pre_sum - k in pre_sum_dict: #前缀和-target
c += pre_sum_dict[pre_sum - k]
pre_sum_dict[pre_sum] += 1
return c