Check If Array Pairs Are Divisible by k

MediumArrayHash TableCounting

Solution

export function canArrange(arr: number[], k: number): boolean {
  const counter = new Array(k).fill(0);
  for (const num of arr) {
    const remainder = ((num % k) + k) % k;
    counter[remainder] += 1;
  }
 
  if (counter[0] % 2 !== 0) {
    return false;
  }
 
  for (let i = 1; i <= k / 2; i++) {
    if (counter[i] !== counter[k - i]) {
      return false;
    }
  }
  return true;
}

Complexity

  • Time: O(N)
  • Space: O(K)