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.
Dry Run Example
Input: arr = [2, 4, 1, 3], k = 5
Check pairs:
2 + 3 = 5 (valid)
4 + 1 = 5 (valid)
All elements are used successfully, so return true.
Beginner Notes
- boolean[] used = new boolean[n] creates a flag array to track used elements.
- !used[j] checks if arr[j] is unused.
- We use a flag foundPair to see if any valid pair was found.
- If any element cannot be paired, we return false
Summary Points
- used[] array: Marks used elements.
- Nested loops: Check for valid divisible pair.
- Modulo check: (arr[i] + arr[j]) % k == 0
- foundPair: Used to break early if pair is found
Comments
Post a Comment