给定一个整数数组和一个整数 k,你需要找到该数组中和为 k 的连续的子数组的个数。
思路:前缀和加哈希表
class Solution:
def subarraySum(self, nums: List[int], k: int) -> int:
count=0
prefix_sum=0
dict1={}
dict1[0]=1
for i in range(len(nums)):
prefix_sum+=nums[i]
if prefix_sum-k in dict1.keys():
count+=dict1[prefix_sum-k]
if prefix_sum in dict1.keys():
dict1[prefix_sum]+=1
else:
dict1[prefix_sum]=1
return count