面试题 08.13. 堆箱子
![](https://i-blog.csdnimg.cn/blog_migrate/16e1bbff5bfa6d152b10daa340bd5e9a.png)
【DP】这道题是1691. 堆叠长方体的最大高度的简化版,让箱子不能旋转了,还是同样的做法。按照三条边的总和从小到大排序,然后DP。
class Solution {
public int pileBox(int[][] box) {
Arrays.sort(box, (a, b) -> a[0] + a[1] + a[2] - b[0] - b[1] - b[2]);
int n = box.length, ans = 0;
int[] dp = new int[n];
for (int i = 0; i < n; i++) {
for (int j = 0; j < i; j++) {
if (box[i][0] > box[j][0]
&& box[i][1] > box[j][1]
&& box[i][2] > box[j][2]) {
dp[i] = Math.max(dp[i], dp[j]);
}
}
dp[i] += box[i][2];
ans = Math.max(dp[i], ans);
}
return ans;
}
}