华为OD机试真题- 书籍叠放-2023年OD统一考试(B卷)

题目描述:

书籍的长、宽都是整数对应 (l,w)。如果书A的长宽度都比B长宽大时,则允许将B排列放在A上面。
现在有一组规格的书籍,书籍叠放时要求书籍不能做旋转,请计算最多能有多少个规格书籍能叠放在一起。
 

输入描述:

输入: books = [[20,16],[15,11],[10,10],[9,10]]

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

输出描述:输出: 3 

说明: 最多3个规格的书籍可以叠放到一起, 

从下到上依次为: [20,16],[15,11],[10,10]

补充说明:

 收起

示例1

输入:

[[20,16],[15,11],[10,10],[9,10]]

输出:

3

说明:

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

解题思路:

使用二分查找进行排序

const input = "[[16,15], [16, 14], [13, 12], [15, 14]]"
const arr = JSON.parse(input)
const len = arr.length

const dp = new Array(len).fill(1)

arr.sort((a, b) => {
    if (a[0] !

你可能感兴趣的:(华为OD机试题库2023年,python,华为OD机试,c++,算法,java)