我在编码面试中遇到了这个问题,但无法找到一个好的解决方案。
你有6个多米诺骨牌。每个多米诺骨牌有2个半部分,每个半部分上有一定数量的点数。你正在构建一个3层的多米诺骨牌金字塔。底层需要3个多米诺骨牌,中层需要2个,顶层只需要1个。
多米诺骨牌被摆放的方式是,每一层都位于下一层的中心位置。以下是一个示意图:
金字塔必须设置成这样,即每个多米诺骨牌的一半上的点数应与其下面的一半上的点数相同。这不适用于同一级别上的相邻多米诺骨牌。
有可能按照上述安排使用6个多米诺骨牌建造金字塔吗?多米诺骨牌可以自由排列和旋转。
编写一个函数,该函数接受一个包含12个整数的数组(例如arr[0]、arr[1]是第一个多米诺骨牌,arr[2]、arr[3]是第二个多米诺骨牌等),如果可以使用给定的6个多米诺骨牌创建金字塔,则返回“YES”,否则返回“NO”。
谢谢。
你有6个多米诺骨牌。每个多米诺骨牌有2个半部分,每个半部分上有一定数量的点数。你正在构建一个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]是第二个多米诺骨牌等),如果可以使用给定的6个多米诺骨牌创建金字塔,则返回“YES”,否则返回“NO”。
谢谢。