当前位置:网站首页>LeetCode: 406. 根据身高重建队列
LeetCode: 406. 根据身高重建队列
2022-08-04 21:22:00 【君梦如烟Brian】
思路
先安置较高的,再安置较矮的。
由于每个人只能看与自己同高或更高的。也就是说较高者的k值,不受较矮者的影响。
那么,我们如果先按照身高进行排序之后,每次取出输入序列中的最高者。
那么已安排序列中所有人的身高一定都比当前输入者的身高要高。那么,输入者的k值一定放到已安排序列中第k个一定是符合顺序的。
原题输入: [7,0],[4,4],[7,1],[5,0],[6,1],[5,2]
根据身高排个序,得到输入序列 [7,0],[7,1],[6,1],[5,0],[5,2],[4,4]
已安排序列: [ ]
放入[7,0],根据k值放置
输入序列: [7,1],[6,1],[5,0],[5,2],[4,4]
安排序列: [7,0]放入[7,1]
输入序列: [6,1],[5,0],[5,2],[4,4]
安排序列: [7,0],[7,1]放入[6,1],与已经存在的[7,1]存在冲突,由于7 > 6, 因此可以将[7,1]往后挪
输入序列: [5,0],[5,2],[4,4]
安排序列: [7,0],[6,1],[7,1]放入 [5,0], 同上冲突, 由于所有数都比[5,0]大,我们可以将它们任意挪动,而不影响它们的k值
输入序列: [5,2],[4,4]
安排序列: [5,0], [7,0],[6,1],[7,1]放入 [5,2],
输入序列: [4,4]
安排序列: [5,0],[7,0],[5,2],[6,1],[7,1]放入[4,4]
输入序列: []
安排序列: [5,0],[7,0],[5,2],[6,1],[4,4],[7,1],
实现
class Solution {
public:
vector<vector<int>> reconstructQueue(vector<vector<int>>& people) {
std::sort(people.begin(), people.end(),
[&](const auto &lhs, const auto& rhs){
// h相等, k降序
// h不等, h升序
return lhs[0] == rhs[0] ? lhs[1] < rhs[1] : lhs[0] > rhs[0];
});
vector<vector<int>> tmp;
for(int i = 0; i != people.size();++i){
tmp.insert(tmp.begin() + people[i][1], people[i]);
}
return tmp;
}
};
边栏推荐
- 知识分享|如何设计有效的帮助中心,不妨来看看以下几点
- unity2D横版游戏教程8-音效
- 伺服电机矢量控制原理与仿真(1)控制系统的建立
- 1.读写点云文件
- jekyll adds a flowchart to the blog
- [Teach you to use the serial port idle interrupt of the STM32HAL library]
- dotnet 通过 WMI 获取系统安装软件
- [2022 Hangzhou Electric Power Multi-School 5 1012 Questions Buy Figurines] Application of STL
- JdbcTemplate概述和测试
- js数据类型、节流/防抖、点击事件委派优化、过渡动画
猜你喜欢
随机推荐
链队
数电快速入门(四)(组合逻辑电路的分析以及设计的介绍)
经验分享|盘点企业进行知识管理时的困惑类型
Dotnet using WMI software acquisition system installation
Pinduoduo open platform order information query interface [pdd.order.basic.list.get order basic information list query interface (according to transaction time)] code docking tutorial
idea2021版本添加上一步和下一步操作到工具栏
【分布式】分布式ID生成策略
[2022 Hangzhou Electric Power Multi-School 5 1012 Questions Buy Figurines] Application of STL
laravel whereDoesntHave
Moke, dynamic image resource package display
Win11如何设置软件快捷方式?
Configure laravel queue method using fort app manager
知识分享|如何设计有效的帮助中心,不妨来看看以下几点
UnicodeDecodeError: ‘utf-8‘ codec can‘t decode byte 0xd6 in position 120: invalid continuation byte
LocalDate时间日期包的用法
零基础都能拿捏的七夕浪漫代码,快去表白或去制造惊喜吧
大势所趋之下的nft拍卖,未来艺术品的新赋能
27. Dimensionality reduction
【PCBA program design】Grip dynamometer program
硬件开发定制全流程解析