# 1497. 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.
```

**Example 4:**

```
Input: arr = [-10,10], k = 2
Output: true
```

**Example 5:**

```
Input: arr = [-1,1,-2,2,-3,3,-4,4], k = 3
Output: true
```

**Constraints:**

* `arr.length == n`
* `1 <= n <= 10^5`
* `n` is even.
* `-10^9 <= arr[i] <= 10^9`
* `1 <= k <= 10^5`

问给定偶数个数目的数组能否俩俩配对，每对和都是K的倍数。和是K的倍数 (a + b) % K == 0 =>取余后和mod K为0 (a % K + b % K) % K == 0 。统计余数a出现的频率，看K - a的频率是否与之相等。余数为0时满足频率为偶数。

```python
class Solution:
    def canArrange(self, arr: List[int], k: int) -> bool:
        m = collections.defaultdict(int)
        for a in arr:
            m[a % k] += 1
        for key, value in m.items():
            if key == 0:
                if m[0] % 2 != 0: return False
                continue
            if m[k - key] != value: return False
        return True
```


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://hao-fu-1.gitbook.io/oj/hash/tong-ji-pin-lv/1497.-check-if-array-pairs-are-divisible-by-k.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
