所有题目均有五种语言实现。C实现目录、C++ 实现目录、Python实现目录、Java实现目录、JavaScript实现目录
题目
书籍的长、宽都是整数对应 (l,w)。如果书A的长宽度都比B长宽大时,则允许将B排列放在A上面。现在有一组规格的书籍,书籍叠放时要求书籍不能做旋转,请计算最多能有多少个规格书籍能叠放在一起。
输入
[[20,16],[15,11],[10,10],[9,10]]
输出
3
解释:前三本可叠放在一起。
思路
1:注意审题,书A的长宽度都比B长宽大时,才能叠上去,也就是两个数字都比另外一个大才行。
2:那题目就比较好理解了,先按照长度、宽度对书籍进行排序(长度相同的,再按照宽度排序)。
3:动态规划,转移方程:dp[i] = max(dp[i], dp[j] + 1);