Reto #4: Una caja dentro de otra caja y otra...
圣诞老人需要查看您的礼品盒,以确保您可以将它们全部包装在雪橇中。它具有一系列不同尺寸的盒子,其特征是其长度,宽度和高度。
。您的任务是编写一个函数,给定尺寸的盒子列表,确定是否可能可以将所有盒子包装在一个单个框,每个框都包含另一个(又包含另一个盒子,并且依次)。
每个框用对象表示其度量。例如:kude0。这意味着盒子的长度为2,宽度为3,高度为2。
一个盒子进入另一个盒子,如果第一个的所有侧面小于第二个侧面。 精灵告诉我们,这些盒子不能旋转,因此不能将2x3x2盒放在3x2x2盒中。让我们看一些例子:
fitsInOneBox([
{ l: 1, w: 1, h: 1 },
{ l: 2, w: 2, h: 2 }
]) // true
在上一个示例中,最小的盒子进入了最大的盒子。因此,可以将所有盒子包装成一个。现在让我们看看一个没有的情况:
const boxes = [
{ l: 1, w: 1, h: 1 },
{ l: 2, w: 2, h: 2 },
{ l: 3, w: 1, h: 3 }
]
fitsInOneBox(boxes) // false
在上一个示例中,最小的盒子进入中型盒子,但是中型盒子不会进入最大的盒子。因此,不可能将所有盒子包装成一个。
请记住,盒子可能不会按顺序出现:
const boxes = [
{ l: 1, w: 1, h: 1 },
{ l: 3, w: 3, h: 3 },
{ l: 2, w: 2, h: 2 }
]
fitsInOneBox(boxes) // true
在上一个示例中,第一个框适合第三个框,第二个框中的第三个框则在第二个框中。因此,可以将所有盒子包装成一个。
要考虑的事情:
盒子不能旋转,因为精灵告诉我们角落没有准备。
盒子可以来自大小。
盒子并不总是正方形,它们可以是矩形。
完成挑战!
您可以关注@midudev并注意Advent.js
的挑战14:49 pm- 2022年11月30日
我的解决方案: