g1101_1200.s1128_number_of_equivalent_domino_pairs.Solution Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of leetcode-in-java21 Show documentation
Show all versions of leetcode-in-java21 Show documentation
Java-based LeetCode algorithm problem solutions, regularly updated
package g1101_1200.s1128_number_of_equivalent_domino_pairs;
// #Easy #Array #Hash_Table #Counting #2023_06_01_Time_15_ms_(51.49%)_Space_55_MB_(20.00%)
import java.util.HashMap;
import java.util.Map;
/**
* 1128 - Number of Equivalent Domino Pairs\.
*
* Easy
*
* Given a list of `dominoes`, `dominoes[i] = [a, b]` is **equivalent to** `dominoes[j] = [c, d]` if and only if either (`a == c` and `b == d`), or (`a == d` and `b == c`) - that is, one domino can be rotated to be equal to another domino.
*
* Return _the number of pairs_ `(i, j)` _for which_ `0 <= i < j < dominoes.length`_, and_ `dominoes[i]` _is **equivalent to**_ `dominoes[j]`.
*
* **Example 1:**
*
* **Input:** dominoes = \[\[1,2],[2,1],[3,4],[5,6]]
*
* **Output:** 1
*
* **Example 2:**
*
* **Input:** dominoes = \[\[1,2],[1,2],[1,1],[1,2],[2,2]]
*
* **Output:** 3
*
* **Constraints:**
*
* * 1 <= dominoes.length <= 4 * 104
* * `dominoes[i].length == 2`
* * `1 <= dominoes[i][j] <= 9`
**/
public class Solution {
public int numEquivDominoPairs(int[][] dominoes) {
Map map = new HashMap<>();
int count = 0;
for (int[] dominoe : dominoes) {
int smaller = Math.min(dominoe[0], dominoe[1]);
int bigger = Math.max(dominoe[0], dominoe[1]);
int key = smaller * 10 + bigger;
count += map.getOrDefault(key, 0);
map.put(key, map.getOrDefault(key, 0) + 1);
}
return count;
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy