Subarray Sums Divisible by K
MediumArrayHash TablePrefix Sum
Solution
export function subarraysDivByK(nums: number[], k: number): number {
let answer = 0;
let sum = 0;
const counts = new Map<number, number>([[0, 1]]);
for (const num of nums) {
sum += num;
const mod = sum % k < 0 ? (sum % k) + k : sum % k;
const count = counts.get(mod) ?? 0;
answer += count;
counts.set(mod, count + 1);
}
return answer;
}