AlgoMaster Logo

Subarray Sums Divisible by K

nums=[4, 5, 0, -2, -3, 1],k=5
1public int subarraysDivByK(int[] nums, int k) {
2    Map<Integer, Integer> map = new HashMap<>();
3    map.put(0, 1);
4    int sum = 0;
5    int count = 0;
6
7    for (int curr : nums) {
8        sum += curr;
9        int remainder = ((sum % k) + k) % k;
10        if (map.containsKey(remainder)) {
11            count += map.get(remainder);
12        }
13        map.put(remainder, map.getOrDefault(remainder, 0) + 1);
14    }
15
16    return count;
17}
0 / 20
count = 0450-2-31sum = 0map = {}