zoukankan      html  css  js  c++  java
  • [LC] 1007. Minimum Domino Rotations For Equal Row

    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;
        }
    }
  • 相关阅读:
    【BZOJ4444】国旗计划
    NOIp模拟赛三十一
    [arc086e]snuke line
    NOIp模拟赛三十
    [agc004f]namori
    [agc004d]salvage robot
    [agc016b]colorful hats
    NOIp模拟赛二十九
    [arc082f]sandglass
    Oracle性能报告--ASH
  • 原文地址:https://www.cnblogs.com/xuanlu/p/12294040.html
Copyright © 2011-2022 走看看