R4-前缀和专题
class Solution:
def subarraysDivByK(self, nums: List[int], k: int) -> int:
ret=0
# 存储当前位置的上一个位置的前缀和的余数加上当前位置的值对K的余数
pre_mod=0
dict=defaultdict(int)
dict[0]=1
for i in range(len(nums)):
pre_mod=(pre_mod+nums[i])%k
# 如果能在dict中找到相同的pre_mod,说明当前节点前的某个位置的前缀和到当前位置的前缀和间存在若干个K
ret+=dict[pre_mod]
dict[pre_mod]+=1
return ret
ps:
python取模向下取整