Untitled
unknown
plain_text
10 months ago
920 B
3
Indexable
public int subarraysDivByK(int[] nums, int k) {
int count = 0;
int prefixSum = 0;
HashMap<Integer, Integer> map = new HashMap<>();
// Initialize map with 0 remainder having count 1
map.put(0, 1);
for (int num : nums) {
prefixSum += num;
// Compute remainder of prefixSum with k
int remainder = prefixSum % k;
// Handle negative remainders
if (remainder < 0) {
remainder += k;
}
// Check if this remainder has been seen before
if (map.containsKey(remainder)) {
count += map.get(remainder);
}
// Update the map with the current remainder
map.put(remainder, map.getOrDefault(remainder, 0) + 1);
}
return count;
}Editor is loading...
Leave a Comment