码迷,mamicode.com
首页 > 其他好文 > 详细

[LC] 1007. Minimum Domino Rotations For Equal Row

时间:2020-02-11 11:48:25      阅读:101      评论:0      收藏:0      [点我收藏+]

标签:dom   imu   new   sam   ann   from   equal   for   cannot   

In a row of dominoes, A[i] and B[i] represent the top and bottom halves of the i-th domino.  (A domino is a tile with two numbers from 1 to 6 - one on each half of the tile.)

We may rotate the i-th domino, so that A[i] and B[i] swap values.

Return the minimum number of rotations so that all the values in A are the same, or all the values in B are the same.

If it cannot be done, return -1.

 

class Solution {
    public int minDominoRotations(int[] A, int[] B) {
        int[] countA = new int[7];
        int[] countB = new int[7];
        int[] same = new int[7];
        int n = A.length;
        for (int i = 0; i < n; i++) {
            countA[A[i]] += 1;
            countB[B[i]] += 1;
            if (A[i] == B[i]) {
                same[A[i]] += 1;
            }
        }

        for (int i = 1; i <= 6; i++) {
            if (countA[i] + countB[i] - same[i] == n) {
                return n - Math.max(countA[i], countB[i]);
            }
        }
        return -1;
    }
}

 

[LC] 1007. Minimum Domino Rotations For Equal Row

标签:dom   imu   new   sam   ann   from   equal   for   cannot   

原文地址:https://www.cnblogs.com/xuanlu/p/12294040.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!