DDSA Solutions

1128. Number of Equivalent Domino Pairs

Time: O(n)
Space: O(n)
Advertisement

Intuition

Normalize dominoes (min, max). Count pairs with same normalized form using C(n,2).

Algorithm

  1. 1Normalize: (min(a,b), max(a,b)).
  2. 2Frequency map. For freq f: add f*(f-1)/2.

Common Pitfalls

  • Key: min*10+max works since values 1-9.
1128.cs
C#
// Approach: Normalize each domino to (min, max) and count frequencies; pairs = n*(n-1)/2 for each group.
// Time: O(n) Space: O(n)

public class Solution
{
    public int NumEquivDominoPairs(int[][] dominoes)
    {
        Dictionary<string, int> dominoCounts = new Dictionary<string, int>();
        int count = 0;

        foreach (var domino in dominoes)
        {
            int a = domino[0];
            int b = domino[1];
            string key = $"{Math.Min(a, b)},{Math.Max(a, b)}";

            if (dominoCounts.ContainsKey(key))
                dominoCounts[key]++;
            else
                dominoCounts[key] = 1;
        }

        foreach (var kvp in dominoCounts)
        {
            int n = kvp.Value;
            if (n >= 2)
                count += n * (n - 1) / 2;
        }

        return count;
    }
}
Advertisement
Was this solution helpful?