974. 和可被 K 整除的子数组


	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;
    }
}
hmoban主题是根据ripro二开的主题,极致后台体验,无插件,集成会员系统
自学咖网 » 974. 和可被 K 整除的子数组