-
Notifications
You must be signed in to change notification settings - Fork 0
/
5449_divisible_array_pairs.py
52 lines (44 loc) · 1.17 KB
/
5449_divisible_array_pairs.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
'''
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
'''
class Solution:
def canArrange(self, arr, k: int) -> bool:
res = 0
for num in arr:
res += num % k
res = res % k
return res == 0
s = Solution()
arr = [-1,1,-2,2,-3,3,-4,4]
k = 3
arr = [1,2,3,4,5,6]
k = 10
arr = [1,2,3,4,5,10,6,7,8,9]
k = 5
print(s.canArrange(arr, k))