AlgoMooc
你已开通华为OD训练营权益,还差最后一步——完成入营激活(兑换课程 + 加飞书 + 登记服务群),即可解锁全部课程与专属服务。去激活 →
← 返回题库

P3430. 书籍叠放

中等通过率 47% · 提交 1,406 · 通过 660
动态规划排序二分查找DP

小慕最近在整理他的书架,每本书都有长和宽两个整数属性,分别记为(l, w)。他发现,如果一本书A的长和宽都严格大于另一本书B的长和宽,那么B就可以稳稳地在A的上面。 现在小慕手头有一组书籍,叠放时不允许旋转书本(即不能交换长和宽)。请你帮小慕计算一下,最多能有多少本书可以叠放在一起。

提示:带虚线的词点一下有通俗解释。

输入描述

输入:books = 20,16,15,11,10,10,9,10 说明:总共4本书籍, 第一本长度为20,宽度为16; 第二本书长度为15宽度为11; 依次类推,最后一本书长度为9,宽度为10

输出描述

输出:3 最多能有多少个规格书籍能叠放在一起

示例

示例 1

输入

20,16,15,11,10,10,9,10

输出

3

说明:最多3个规格的书籍可以叠放到一起,从下到上依次为: [20,16],[15,11],[10,10]

示例 2

输入

20,15,15,20

输出

1

时间限制 1000 ms · 内存限制 128 MB

看不懂题目?点开图解
书籍叠放示例(输入:20,16,15,11,10,10,9,10) [20,16] [15,11] [10,10] 从上到下:3本 每本书不能旋转,下面的书必须长和宽都大于上面的书
写完代码点「提交」,将对全部测试用例判题。

向老师提问

针对「书籍叠放」把疑问、代码和报错填清楚,老师收到后能更快、更准地回复你。