algorithm - 检查多米诺骨牌金字塔的有效性
问题描述
我在一次编码面试中遇到了这个问题,但无法找到一个好的解决方案。
给你 6 张多米诺骨牌。多米诺骨牌有两半,每半都有许多点。您正在构建一个 3 级的多米诺骨牌金字塔。底层有3个多米诺骨牌,中层有2个,顶层有1个。
这种布置方式使得每一层都位于其下一层的中心之上。这是一个视觉效果:
[ 3 | 4 ]
[ 2 | 3 ] [ 4 | 5 ]
[ 1 | 2 ][ 3 | 4 ][ 5 | 6 ]
必须设置金字塔,使得每个多米诺骨牌一半上的点数应与其下方一半上的点数相同。这不适用于同一级别的相邻多米诺骨牌。
是否可以按照上述排列从 6 块多米诺骨牌构建金字塔?多米诺骨牌可以自由排列和旋转。
编写一个接受 12 个整数数组的函数(例如,arr[0]、arr[1] 是第一个多米诺骨牌,arr[2]、arr[3] 是第二个多米诺骨牌,等等)并返回“YES”或如果可以用给定的 6 块多米诺骨牌创建金字塔,则为“否”。
谢谢你。
解决方案
你可以做得比暴力破解更好。我没有时间给出完整的答案。所以这更像是一个提示。
计算每个数字出现的次数。对于至少两个数字,它应该至少为 3,依此类推。如果不满足这些条件,就没有解决方案。在接下来的步骤中,您需要考虑数字在图块上的位置。
推荐阅读
- android-intent - 保持数据在意图之间来自 webhook-in-dialogflow II
- r - For-loop 不会使用 r 插入矩阵中的缺失值
- r - 如何使用 stringr 包从文本向量中删除 URL?
- amazon-web-services - 使用 terraform 创建隔离堆栈,就像 AWS 上的无服务器框架一样
- scala - 隐式解析选择最具体的子类型
- go - 如何使用 Sarama 在多个 goroutines 中消费 Kafka 主题?
- c++ - 无法将带有布尔网格的文本文件读入向量的向量
- php - 无法让 jquery datepicker 在 Wordpress 插件中工作
- python - 使用 boto3 将本地文件夹同步到 s3 存储桶
- delphi - 读取 TextFile 类型的文件(使用 Readln 和/或 Read)是否有文件大小限制?