华为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

输入:

扫描二维码关注公众号,回复: 16502324 查看本文章
[[20,16],[15,11],[10,10],[9,10]]

输出:

3

说明:

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

#include <iostream>
#include <vector>
#include <algorithm>

using namespace std;

void splitBook(const string & str, vector<pair<int ,int>> & rVec)
{
    for(int i = 1; i < str.length() - 1; i++)
    

猜你喜欢

转载自blog.csdn.net/2301_76848549/article/details/132648177