Skip to content

Commit 4ce92b1

Browse files
solves number of equivalent domino pairs
1 parent 1df8095 commit 4ce92b1

File tree

2 files changed

+38
-1
lines changed

2 files changed

+38
-1
lines changed

README.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -300,7 +300,7 @@
300300
| 1118 | [Number of Days in a Month](https://leetcode.com/problems/number-of-days-in-a-month) | | |
301301
| 1119 | [Remove Vowels From String](https://leetcode.com/problems/remove-vowels-from-a-string) | | |
302302
| 1122 | [Relative Sort Array](https://leetcode.com/problems/relative-sort-array) | | |
303-
| 1128 | [Number of Equivalent Domino Pairs](https://leetcode.com/problems/number-of-equivalent-domino-pairs) | | |
303+
| 1128 | [Number of Equivalent Domino Pairs](https://leetcode.com/problems/number-of-equivalent-domino-pairs) | [![Java](assets/java.png)](src/NumberOfEquivalentDominoPairs.java) | |
304304
| 1133 | [Largest Unique Number](https://leetcode.com/problems/largest-unique-number) | | |
305305
| 1134 | [Armstrong Number](https://leetcode.com/problems/armstrong-number) | | |
306306
| 1137 | [Nth Tribonacci Number]() | | |
+37
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
import java.util.HashMap;
2+
import java.util.Map;
3+
4+
public class NumberOfEquivalentDominoPairs {
5+
private static class Domino {
6+
private final int number;
7+
8+
Domino(int[] array) {
9+
number = Math.min(array[0], array[1]) * 10 + Math.max(array[0], array[1]);
10+
}
11+
12+
@Override
13+
public boolean equals(Object o) {
14+
Domino domino = (Domino) o;
15+
return number == domino.number;
16+
}
17+
18+
@Override
19+
public int hashCode() {
20+
return number;
21+
}
22+
}
23+
24+
public int numEquivDominoPairs(int[][] dominoes) {
25+
final Map<Domino, Integer> dominoesFrequencies = new HashMap<>();
26+
Domino d;
27+
for (int[] domino : dominoes) {
28+
d = new Domino(domino);
29+
dominoesFrequencies.put(d, dominoesFrequencies.getOrDefault(d, 0) + 1);
30+
}
31+
int equivalentPairs = 0;
32+
for (int frequency : dominoesFrequencies.values()) {
33+
equivalentPairs += (frequency * (frequency - 1)) / 2;
34+
}
35+
return equivalentPairs;
36+
}
37+
}

0 commit comments

Comments
 (0)