zoukankan      html  css  js  c++  java
  • 20210126 等价多米诺骨牌对的数量

    给你一个由一些多米诺骨牌组成的列表 dominoes。
    
    如果其中某一张多米诺骨牌可以通过旋转 0 度或 180 度得到另一张多米诺骨牌,我们就认为这两张牌是等价的。
    
    形式上,dominoes[i] = [a, b] 和 dominoes[j] = [c, d] 等价的前提是 a==c 且 b==d,或是 a==d 且 b==c。
    
    在 0 <= i < j < dominoes.length 的前提下,找出满足 dominoes[i] 和 dominoes[j] 等价的骨牌对 (i, j) 的数量。
    
     
    
    示例:
    
    输入:dominoes = [[1,2],[2,1],[3,4],[5,6]]
    输出:1
    
    来源:力扣(LeetCode)
    链接:https://leetcode-cn.com/problems/number-of-equivalent-domino-pairs
    著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。
     public int numEquivDominoPairs(int[][] dominoes) {
    
        }

    思路:

    可以用纯hash计算 也可以对数组排序后插入set  数组长度-set个数是结果

        public static int numEquivDominoPairs(int[][] dominoes) {
            HashSet s = new HashSet();
            for(int[] domin:dominoes){
                Arrays.sort(domin);
    //            s.add(domin);数组指向地址而不是值 所以set去重失效
                s.add(String.valueOf(domin[0]+domin[1]));
            }
            return dominoes.length-s.size();
        }

    提交[[1,2],[1,2],[1,1],[1,2],[2,2]]失败  预期结果为3

    思路错误 题意理解错误 如[[1,2],[1,2],[1,1],[1,2],[2,2]]是要依次从左到右获取等价的数组 这组中[1,2]等价的

    第一个[1,2]依次和后面的对比 后面有2个[1,2] 

    第二个[1,2]后面有1个[1,2]

    第三个[1,2]后面没有

    所以有2+1=3个

    说白了[1,2]看成一个对象 共有3个[1,2]对象 这3个对象两两配对 共有3个组合

    初中学过二次项公式 如上有3个相同对象 C32=3x(3-1)/2=3 能算出两两配对组合个数

    重新思考思路

    把同类的对象个数分别存到数组上

    再用遍历用二次项公式取值

     public int numEquivDominoPairs(int[][] dominoes) {
            int[] map = new int[100];
            int res = 0;
            for(int i = 0; i < dominoes.length; i++){
                int m = dominoes[i][0];
                int n = dominoes[i][1];
                int k = m > n ? m * 10 + n : n * 10 + m;
                map[k] ++;
            }
            for(int i = 0; i < 100; i++){
                res += map[i] * (map[i] - 1) / 2;
            }
            return res;
        }
  • 相关阅读:
    Python写出LSTM-RNN的代码
    TensorFlow 实现 RNN 入门教程
    RNN与应用案例:注意力模型与机器翻译
    RNN入门
    内积(又名点积)
    词袋模型(BOW, bag of words)
    softmax
    Dropout
    随机梯度下降法
    L1范式和L2范式
  • 原文地址:https://www.cnblogs.com/hbhb/p/14333162.html
Copyright © 2011-2022 走看看