低配版路径和 437. 路径总和 III
class Solution:
def subarraySum(self, nums: List[int], k: int) -> int:
HashMap = {0:1}
# 哈希表保存每一个前缀和 pre
n = len(nums)
count, pre = 0, 0
# pre 为前缀和
# count 计数
for i in range(n):
pre += nums[i]
if pre - k in HashMap:
# 在哈希表中查询是否存在前缀和 pre_before 使得当前前缀和 pre - pre_before = K
# 即 pre - k 是否存在于哈希表中
count += HashMap[pre - k]
# 保存当前前缀和
if pre not in HashMap:
HashMap[pre] = 1
else:
HashMap[pre] += 1
return count