LeetCode #1128. Number of Equivalent Domino Pairs
题目
1128. Number of Equivalent Domino Pairs
解题方法
遍历数组,先把每个domino排序,小在前大在后,然后判断这个元组是否是dic的一个键,如果不是就加入到dic中,如果是就把值+1。之后遍历dic的键,套用公式sum = n(n-1)/2计算每一个元组能凑出来的dominoes对,最后累加到返回值rat中即可。
时间复杂度:O(n)
空间复杂度:O(n)
n是domino pairs的个数。
代码
class Solution:
def numEquivDominoPairs(self, dominoes: List[List[int]]) -> int:
dic = {}
for i in range(len(dominoes)):
if dominoes[i][0] > dominoes[i][1]:
dominoes[i][0], dominoes[i][1] = dominoes[i][1], dominoes[i][0]
if (dominoes[i][0], dominoes[i][1]) not in dic:
dic[(dominoes[i][0], dominoes[i][1])] = 1
else:
dic[(dominoes[i][0], dominoes[i][1])] += 1
rat = 0
for val in dic.values():
rat += val * (val - 1) // 2
return rat

浙公网安备 33010602011771号