【发布时间】:2021-08-05 02:00:12
【问题描述】:
我们有 n 个尺寸为 x、y、z(宽度、高度、深度)的框。
我们想在另一个里面插入最大数量的盒子。
如果内盒 (i) 的大小严格小于外盒 (j) 的大小,则可以将一个盒子放在另一个盒子里面:x[i]
这些框不能旋转,可以按任何顺序考虑。
如何通过动态规划实现目标?
这个问题类似于最长递增子序列问题吗?
按升序/降序排列盒子是否有意义?
【问题讨论】:
-
到目前为止你有什么想法?
-
按面积/体积排序可能会有帮助
-
如果我们有 2D 框,我们可以按宽度排序,并在诱导的高度序列中找到最长的递增子序列,花费 n 个框的 O(n*log(n)) 时间。我不确定 3D 盒子是否可以实现这种时间复杂度。
标签: algorithm dynamic-programming