1497. Check If Array Pairs Are Divisible by k

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
class Solution {
public boolean canArrange(int[] arr, int k) {
Map<Integer, Integer> numToFrequencyMap = new HashMap<>();

for (int num : arr) {
num = (num % k + k) % k;
numToFrequencyMap.put(num, numToFrequencyMap.getOrDefault(num, 0) + 1);
}

for (Map.Entry<Integer, Integer> entry : numToFrequencyMap.entrySet()) {
int num = entry.getKey();
int frequency = entry.getValue();
if (num > 0 && numToFrequencyMap.getOrDefault(k - num, 0) != frequency) {
return false;
}
}

return numToFrequencyMap.getOrDefault(0, 0) % 2 == 0;
}
}

References

1497. Check If Array Pairs Are Divisible by k