Skip to content

Commit 5a7ad7f

Browse files
solves #2341: Maximum Number of Pairs in Array in java
1 parent 187a7fb commit 5a7ad7f

File tree

2 files changed

+31
-1
lines changed

2 files changed

+31
-1
lines changed

Diff for: README.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -751,7 +751,7 @@
751751
| 2331 | [Evaluate Boolean Binary Tree](https://leetcode.com/problems/evaluate-boolean-binary-tree) | [![Java](assets/java.png)](src/EvaluateBooleanBinaryTree.java) | |
752752
| 2335 | [Minimum Amount of Time to Fill Cups](https://leetcode.com/problems/minimum-amount-of-time-to-fill-cups) | [![Java](assets/java.png)](src/MinimumAmountOfTimeToFillCups.java) | |
753753
| 2439 | [Minimize Maximum of Array](https://leetcode.com/problems/minimize-maximum-of-array) | [![Python](assets/python.png)](python/minimize_maximum_of_array.py) | |
754-
| 2341 | [Maximum Number of Pairs in Array](https://leetcode.com/problems/maximum-number-of-pairs-in-array) | | |
754+
| 2341 | [Maximum Number of Pairs in Array](https://leetcode.com/problems/maximum-number-of-pairs-in-array) | [![Java](assets/java.png)](src/MaximumNumberOfPairsInArray.java) | |
755755
| 2347 | [Best Poker Hand](https://leetcode.com/problems/best-poker-hand) | | |
756756
| 2348 | [Number of Zero-Filled Subarrays](https://leetcode.com/problems/number-of-zero-filled-subarrays) | [![Python](assets/python.png)](python/number_of_zero_filled_subarrays.py) | |
757757
| 2351 | [First Letter to Appear Twice](https://leetcode.com/problems/first-letter-to-appear-twice) | | |

Diff for: src/MaximumNumberOfPairsInArray.java

+30
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
// https://leetcode.com/problems/maximum-number-of-pairs-in-array
2+
// T: O(N)
3+
// S: O(N)
4+
5+
import java.util.HashMap;
6+
import java.util.Map;
7+
8+
public class MaximumNumberOfPairsInArray {
9+
public int[] numberOfPairs(int[] nums) {
10+
final Map<Integer, Integer> digitFrequencies = getFrequencies(nums);
11+
final int numberOfPairs = getNumberOfPairs(digitFrequencies);
12+
return new int[] { numberOfPairs, nums.length - 2 * numberOfPairs };
13+
}
14+
15+
private int getNumberOfPairs(Map<Integer, Integer> frequencies) {
16+
int result = 0;
17+
for (int frequency : frequencies.values()) {
18+
result += frequency / 2;
19+
}
20+
return result;
21+
}
22+
23+
private Map<Integer, Integer> getFrequencies(int[] array) {
24+
final Map<Integer, Integer> result = new HashMap<>();
25+
for (int element : array) {
26+
result.put(element, result.getOrDefault(element, 0) + 1);
27+
}
28+
return result;
29+
}
30+
}

0 commit comments

Comments
 (0)