974. 和可被 K 整除的子数组
方法一:不用统计前缀和,只需要统计前i个数的余数就可以,若之前和的余数和当前和的余数相等则子数组可以整除K,遍历一遍即可
class Solution {
public int subarraysDivByK(int[] A, int k) {
int n = A.length;
Map<Integer,Integer> map = new HashMap<>();
map.put(0,1); // 本身即可整除K的情况
int sum = 0, res = 0;
for(int i = 0; i < n; i++) {
sum += A[i];
int yu = (sum % k + k) % k; // 防止出现余数为负的情况
res += map.getOrDefault(yu,0);
map.put(yu,map.getOrDefault(yu,0)+1);
}
return res;
}
}

![974. 和可被 K 整除的子数组
[编程语言教程]](https://www.zixueka.com/wp-content/uploads/2024/02/1706717676-3f3fc047dfefa29.jpg)

