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

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

💡 原文英文,约600词,阅读约需2分钟。
📝

内容提要

给定多米诺骨牌列表,判断等价对的数量。两个骨牌等价当且仅当可以旋转匹配。通过标准化表示和哈希表统计频率,计算每个唯一骨牌的组合对数,时间复杂度为O(n)。

🎯

关键要点

  • 给定多米诺骨牌列表,判断等价对的数量。
  • 两个骨牌等价当且仅当可以旋转匹配。
  • 通过标准化表示和哈希表统计频率,计算每个唯一骨牌的组合对数。
  • 时间复杂度为O(n)。
  • 标准化骨牌表示:将每个骨牌[a, b]标准化为(min(a, b), max(a, b))。
  • 使用哈希表统计每个标准化骨牌的出现次数。
  • 使用组合公式c * (c - 1) / 2计算每个唯一骨牌的对数。
  • 该方法适用于大输入规模,符合问题约束。

延伸问答

如何判断两个多米诺骨牌是否等价?

两个多米诺骨牌等价当且仅当可以旋转匹配,即[a, b]与[c, d]等价当且仅有(a == c且b == d)或(a == d且b == c)。

如何计算多米诺骨牌的等价对数量?

通过标准化每个多米诺骨牌的表示,使用哈希表统计频率,然后应用组合公式c * (c - 1) / 2计算每个唯一骨牌的对数。

标准化多米诺骨牌的表示是什么意思?

标准化表示是将每个多米诺骨牌[a, b]转换为(min(a, b), max(a, b)),以确保等价的骨牌被一致处理。

该算法的时间复杂度是多少?

该算法的时间复杂度为O(n),适用于大输入规模。

如何使用哈希表来统计多米诺骨牌的频率?

使用哈希表记录每个标准化多米诺骨牌的出现次数,以便后续计算等价对。

能否给出一个多米诺骨牌等价对的示例?

例如,输入[[1,2],[2,1],[3,4],[5,6]],等价对为(0, 1),输出为1。

➡️

继续阅读