File tree Expand file tree Collapse file tree 2 files changed +30
-1
lines changed Expand file tree Collapse file tree 2 files changed +30
-1
lines changed Original file line number Diff line number Diff line change 382
382
| 1496 | [ Path Crossing] ( https://leetcode.com/problems/path-crossing ) | [ ![ Java] ( assets/java.png )] ( src/PathCrossing.java ) | |
383
383
| 1502 | [ Can Make Arithmetic Progression From Sequence] ( https://leetcode.com/problems/can-make-arithmetic-progression-from-sequence ) | [ ![ Java] ( assets/java.png )] ( src/CanMakeArithmeticProgressionFromSequence.java ) | |
384
384
| 1507 | [ Reformat Date] ( https://leetcode.com/problems/reformat-date ) | [ ![ Java] ( assets/java.png )] ( src/ReformatDate.java ) | |
385
- | 1512 | [ Number of Good Pairs] ( https://leetcode.com/problems/number-of-good-pairs ) | | |
385
+ | 1512 | [ Number of Good Pairs] ( https://leetcode.com/problems/number-of-good-pairs ) | [ ![ Java ] ( assets/java.png )] ( src/NumberOfGoodPairs.java ) | |
386
386
| 1518 | [ Water Bottles] ( https://leetcode.com/problems/water-bottles ) | | |
387
387
| 1523 | [ Count Odd Numbers In Interval Range] ( https://leetcode.com/problems/count-odd-numbers-in-an-interval-range ) | | |
388
388
| 1528 | [ Shuffle Strings] ( https://leetcode.com/problems/shuffle-string ) | | |
Original file line number Diff line number Diff line change
1
+ // https://leetcode.com/problems/number-of-good-pairs
2
+ // T: O(n)
3
+ // S: O(n)
4
+
5
+ import java .util .HashMap ;
6
+ import java .util .Map ;
7
+
8
+ public class NumberOfGoodPairs {
9
+ public int numIdenticalPairs (int [] nums ) {
10
+ Map <Integer , Integer > frequencies = getFrequencies (nums );
11
+ int goodPairs = 0 ;
12
+ for (int frequency : frequencies .values ()) {
13
+ goodPairs += nC2 (frequency );
14
+ }
15
+ return goodPairs ;
16
+ }
17
+
18
+ private int nC2 (int x ) {
19
+ return (x * (x - 1 )) / 2 ;
20
+ }
21
+
22
+ private Map <Integer , Integer > getFrequencies (int [] array ) {
23
+ final Map <Integer , Integer > frequencies = new HashMap <>();
24
+ for (int element : array ) {
25
+ frequencies .put (element , frequencies .getOrDefault (element , 0 ) + 1 );
26
+ }
27
+ return frequencies ;
28
+ }
29
+ }
You can’t perform that action at this time.
0 commit comments