跳到主要内容

1128.等价多米诺骨牌对的数量

链接:1128.等价多米诺骨牌对的数量
难度:Easy
标签:数组、哈希表、计数
简介:给你一个由一些多米诺骨牌组成的列表 dominoes。在  0 <= i < j < dominoes.length  的前提下,找出满足  dominoes[i] 和  dominoes[j]  等价的骨牌对 (i, j) 的数量。

题解 1 - typescript

  • 编辑时间:2021-01-26
  • 执行用时:128ms
  • 内存消耗:48.9MB
  • 编程语言:typescript
  • 解法介绍:用哈希表储存结果后进行筛选。
function numEquivDominoPairs(dominoes: number[][]): number {
const map: Record<string, number> = {};
const format = (n1: number, n2: number) => `${n1}-${n2}`;
for (let [n1, n2] of dominoes) {
if (n1 > n2) [n1, n2] = [n2, n1];
const str = format(n1, n2);
map[str] = 1 + (map[str] ?? 0);
}
return Object.entries(map)
.filter(([, v]) => v > 1)
.reduce((total, [, count]) => total + (count * (count - 1)) / 2, 0);
}