All Downloads are FREE. Search and download functionalities are using the official Maven repository.

g1101_1200.s1128_number_of_equivalent_domino_pairs.Solution Maven / Gradle / Ivy

There is a newer version: 1.38
Show newest version
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