Skip to content

Commit a5916d1

Browse files
solves #2206: Divide Array Into Equal Pairs in java
1 parent c137d69 commit a5916d1

File tree

2 files changed

+29
-1
lines changed

2 files changed

+29
-1
lines changed

Diff for: README.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -719,7 +719,7 @@
719719
| 2190 | [Most Frequent Number Following Key In an Array](https://leetcode.com/problems/most-frequent-number-following-key-in-an-array) | [![Java](assets/java.png)](src/MostFrequentNumberFollowingKeyInAnArray.java) | |
720720
| 2194 | [Cells in a Range on an Excel Sheet](https://leetcode.com/problems/cells-in-a-range-on-an-excel-sheet) | [![Java](assets/java.png)](src/CellsInARangeOnAnExcelSheet.java) | |
721721
| 2200 | [Find All K-Distant Indices in an Array](https://leetcode.com/problems/find-all-k-distant-indices-in-an-array) | [![Java](assets/java.png)](src/FindAllKDistantIndicesInAnArray.java) | |
722-
| 2206 | [Divide Array Into Equal Pairs](https://leetcode.com/problems/divide-array-into-equal-pairs) | | |
722+
| 2206 | [Divide Array Into Equal Pairs](https://leetcode.com/problems/divide-array-into-equal-pairs) | [![Java](assets/java.png)](src/DivideArrayIntoEqualPairs.java) | |
723723
| 2210 | [Count Hills and Valleys in an Array](https://leetcode.com/problems/count-hills-and-valleys-in-an-array) | | |
724724
| 2215 | [Find the Difference of Two Arrays](https://leetcode.com/problems/find-the-difference-of-two-arrays) | | |
725725
| 2220 | [Minimum Bit Flips to Convert Number](https://leetcode.com/problems/minimum-bit-flips-to-convert-number) | | |

Diff for: src/DivideArrayIntoEqualPairs.java

+28
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
// https://leetcode.com/problems/divide-array-into-equal-pairs
2+
// T: O(N)
3+
// S: O(N)
4+
5+
import java.util.HashMap;
6+
import java.util.Map;
7+
8+
public class DivideArrayIntoEqualPairs {
9+
public static boolean divideArray(int[] array) {
10+
final Map<Integer, Integer> frequencies = getFrequencies(array);
11+
return allFrequenciesAreEven(frequencies);
12+
}
13+
14+
private static boolean allFrequenciesAreEven(Map<Integer, Integer> frequencies) {
15+
for (int frequency : frequencies.values()) {
16+
if (frequency % 2 == 1) return false;
17+
}
18+
return true;
19+
}
20+
21+
private static Map<Integer, Integer> getFrequencies(int[] array) {
22+
final Map<Integer, Integer> result = new HashMap<>();
23+
for (int element : array) {
24+
result.put(element, result.getOrDefault(element, 0) + 1);
25+
}
26+
return result;
27+
}
28+
}

0 commit comments

Comments
 (0)