Advent.jsðð¼|挑战#4:另一个盒子里的一个盒子,另一个盒子里...
#javascript #spanish #typescript #adventofcode

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

的挑战

我的解决方案: