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