题目描述
blablabla
样例
blablabla
算法1
$O(n)$
blablabla
时间复杂度
参考文献
Python3 代码
from collections import Counter
class Solution(object):
def minDominoRotations(self, A, B):
"""
:type A: List[int]
:type B: List[int]
:rtype: int
n = len(A)
if n ==1:
return 0
dicA = collections.defaultdict(list)
dicB = collections.defaultdict(list)
for i in range(n):
dicA[A[i]].append(i)
dicB[B[i]].append(i)
listA = dicA.keys()
listB = dicB.keys()
c = list(set(listA) & set(listB))
if not c:
return -1
res = float('inf')
for i in c:
if len(set(dicA[i]) | set(dicB[i])) ==n:
over = len(dicA[i]) + len(dicB[i]) - n
temp = min(len(dicA[i]), len(dicB[i])) - over
res = min(res,temp )
if res == float('inf'):
return -1
else:
return res