1497. Check If Array Pairs Are Divisible by k LeetCode Solution

In this guide, you will get 1497. Check If Array Pairs Are Divisible by k LeetCode Solution with the best time and space complexity. The solution to Check If Array Pairs Are Divisible by k problem is provided in various programming languages like C++, Java, and Python. This will be helpful for you if you are preparing for placements, hackathons, interviews, or practice purposes. The solutions provided here are very easy to follow and include detailed explanations.

Table of Contents

  1. Problem Statement
  2. Complexity Analysis
  3. Check If Array Pairs Are Divisible by k solution in C++
  4. Check If Array Pairs Are Divisible by k solution in Java
  5. Check If Array Pairs Are Divisible by k solution in Python
  6. Additional Resources
1497. Check If Array Pairs Are Divisible by k LeetCode Solution image

Problem Statement of Check If Array Pairs Are Divisible by k

Given an array of integers arr of even length n and an integer k.
We want to divide the array into exactly n / 2 pairs such that the sum of each pair is divisible by k.
Return true If you can find a way to do that or false otherwise.

Example 1:

Input: arr = [1,2,3,4,5,10,6,7,8,9], k = 5
Output: true
Explanation: Pairs are (1,9),(2,8),(3,7),(4,6) and (5,10).

Example 2:

Input: arr = [1,2,3,4,5,6], k = 7
Output: true
Explanation: Pairs are (1,6),(2,5) and(3,4).

Example 3:

Input: arr = [1,2,3,4,5,6], k = 10
Output: false
Explanation: You can try all possible pairs to see that there is no way to divide arr into 3 pairs each with sum divisible by 10.

Constraints:

arr.length == n
1 <= n <= 105
n is even.
-109 <= arr[i] <= 109
1 <= k <= 105

Complexity Analysis

  • Time Complexity:
  • Space Complexity:
See also  1422. Maximum Score After Splitting a String LeetCode Solution

1497. Check If Array Pairs Are Divisible by k LeetCode Solution in C++

class Solution {
 public:
  bool canArrange(vector<int>& arr, int k) {
    vector<int> count(k);

    for (int a : arr) {
      a %= k;
      ++count[a < 0 ? a + k : a];
    }

    if (count[0] % 2 != 0)
      return false;

    for (int i = 1; i <= k / 2; ++i)
      if (count[i] != count[k - i])
        return false;

    return true;
  }
};
/* code provided by PROGIEZ */

1497. Check If Array Pairs Are Divisible by k LeetCode Solution in Java

class Solution {
  public boolean canArrange(int[] arr, int k) {
    int[] count = new int[k];

    for (int a : arr) {
      a %= k;
      ++count[a < 0 ? a + k : a];
    }

    if (count[0] % 2 != 0)
      return false;

    for (int i = 1; i <= k / 2; i++)
      if (count[i] != count[k - i])
        return false;

    return true;
  }
}
// code provided by PROGIEZ

1497. Check If Array Pairs Are Divisible by k LeetCode Solution in Python

class Solution:
  def canArrange(self, arr: list[int], k: int) -> bool:
    count = [0] * k

    for a in arr:
      a %= k
      count[a if a >= 0 else a + k] += 1

    return (count[0] % 2 == 0 and
            all(count[i] == count[k - i]
                for i in range(1, k // 2 + 1)))
# code by PROGIEZ

Additional Resources

Happy Coding! Keep following PROGIEZ for more updates and solutions.