同樣是利用哈希表解決,哈希表鍵爲餘數,值爲前綴和整除K爲對應餘數的第一個下標。
from collections import defaultdict
class Solution:
def subarraysDivByK(self, A: List[int], K: int) -> int:
dic1={}
'''
鍵爲整除K餘值爲多少
'''
sum = 0
dic1[sum%K]=1
res=0
for val in A:
sum+=val
if sum%K in dic1:
res+=dic1[sum%K]
dic1[sum%K]+=1
else:
dic1[sum%K]=1
return res