algorithm - 检查多米诺骨牌金字塔的有效性

标签 algorithm data-structures

我在编码面试中遇到了这个问题,但找不到好的解决方案。

你有 6 张多米诺骨牌。多米诺骨牌有两半,每一半都有一些 Blob 。您正在构建 3 层多米诺骨牌金字塔。底层有 3 张多米诺骨牌,中层有 2 张,顶层有 1 张。

排列是这样的,每一层都位于它下面一层的中心之上。这是一个视觉效果:

         [ 3 | 4 ]
    [ 2 | 3 ] [ 4 | 5 ]
[ 1 | 2 ][ 3 | 4 ][ 5 | 6 ]

金字塔的设置必须确保每一半多米诺骨牌上的点数与其下方的那半数相同。这不适用于同一级别的相邻多米诺骨牌。

是否可以按照上述排列方式用 6 block 多米诺骨牌搭建一座金字塔?多米诺骨牌可以自由排列和旋转。

编写一个函数,接受一个包含 12 个整数的数组(比如 arr[0]、arr[1] 是第一个多米诺骨牌,arr[2]、arr[3] 是第二个多米诺骨牌,等等)并返回"is"或“否”是否可以用给定的 6 个多米诺骨牌创建金字塔。

谢谢。

最佳答案

您可以比暴力破解做得更好。我没有时间给出完整的答案。所以这更像是一个提示。

计算每个数字出现的次数。对于至少两个数字,它应该至少为 3,依此类推。如果不满足这些条件,则没有解决方案。在接下来的步骤中,您需要考虑数字在图 block 上的位置。

关于algorithm - 检查多米诺骨牌金字塔的有效性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52340958/

相关文章:

python - DiGraph networkx 的大型网络实例的最快迭代是什么?

javascript - 如何在对象中传播嵌套属性?

c - winapi 如何以编程方式更改 Windows 资源语言

java - 在二维数组中查找重复数字

c++ - Stack 的链表实现

c - 实现特征结构 : what data type to use?

python - 基于标签的重叠聚类(软聚类)

c++ - 处理器真的计算乘以零或一吗?为什么?

performance - 快速遍历ACL的策略

algorithm - 如何使用python计算/测量一个区域的坐标分布