[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;
}
} 相关推荐
OwenJi 2020-04-18
liaoxuewu 2020-01-04
Linuxest 2007-08-22
CWeeYii 2007-06-28
iiichigo 2009-01-07
liaoxuewu 2019-10-26
小菜鸟 2013-01-11
raindew 2010-10-23
kenvie 2012-04-10
domino 2017-03-03
huangshuailei 2012-06-02
domino 2015-12-15
JackXue程序生涯 2011-04-26
huangshuailei 2011-02-11
CrazyNotes 2010-08-13