天天看点

[leetCode]1128. 等价多米诺骨牌对的数量题目计数

题目

https://leetcode-cn.com/problems/number-of-equivalent-domino-pairs/
[leetCode]1128. 等价多米诺骨牌对的数量题目计数

计数

统计等价的二元对有多少个,把二元对转化为相同的格式,即第一维不大于第二维,由于二元对的元素都不大于9所以,二元对可以转化为一维 即 10 * x + y,这样用一个长度为100的数组即可

class Solution {
    public int numEquivDominoPairs(int[][] dominoes) {
        int[] counter = new int[100]; 
        int res = 0;
        for (int i = 0 ; i < dominoes.length; i++) {
            int[] d = dominoes[i];
            if (d[0] > d[1]) {
                int temp = d[0];
                d[0] = d[1];
                d[1] = temp;
            }
            int idx = 10 * d[0] + d[1];
            res += counter[idx];
            counter[idx]++;
        }
        return res;
    }
}