leetcode在力扣 App 中打开
调试中...
调试中...
题目描述
题目描述
题解
题解
提交记录
提交记录
代码
代码
测试用例
测试用例
测试结果
测试结果
困难
相关标签
相关企业
提示

堆箱子。给你一堆n个箱子,箱子宽 wi、深 di、高 hi。箱子不能翻转,将箱子堆起来时,下面箱子的宽度、高度和深度必须大于上面的箱子。实现一种方法,搭出最高的一堆箱子。箱堆的高度为每个箱子高度的总和。

输入使用数组[wi, di, hi]表示每个箱子。

示例 1:

 输入:box = [[1, 1, 1], [2, 2, 2], [3, 3, 3]]
 输出:6

示例 2:

 输入:box = [[1, 1, 1], [2, 3, 4], [2, 6, 7], [3, 4, 5]]
 输出:10

提示:

  1. 箱子的数目不大于3000个。
通过次数
15.1K
提交次数
29.6K
通过率
51.0%


相关企业

提示 1
排列箱子会有什么帮助吗?

提示 2
我们可以按任一维度对箱子从大到小进行排序。这样我们会有箱子某一维度的局部顺序,在数组中后面的箱子必须出现在数组中前面的箱子之前。

提示 3
试着把它分解成子问题。

提示 4
想想你必须做出的第一个决定。第一个决定是哪个箱子在底部。

提示 5
一旦我们选择了底部的箱子,就需要选择第二个箱子,然后是第三个。

提示 6
实现一个基本的递归算法之后,你要考虑是否可以优化它。其中有重复的子问题吗?

提示 7
或者,我们可以考虑重复的选择:第一个箱子要放上去吗?第二个箱子要放上去吗?如此反复。

评论 (0)

《程序员面试金典(第 6 版)》独家授权
本书是原谷歌资深面试官的经验之作,帮助了许多想要加入脸书、苹果、谷歌等 IT 名企的求职者拿到 Dream offer。本专题的 100+ 编程面试题是在原书基础上精心挑选出来的,帮助你轻松应战 IT 名企技术面试。
© 2025 领扣网络(上海)有限公司
0 人在线
行 1,列 1
box =
[[1, 1, 1], [2, 2, 2], [3, 3, 3]]
Source