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}