leetcode每日一题:406.queue-reconstruction-by-height(根据升高重建队列)
思路:先对队列进行排序,k小的排前面,如果k相等,那么按照h小的排序;随后进行插入,每次插入元素 i ,检查前面有多少人升高比i的高,并对人数计数,对于相同的k,i应该按从小到大的顺序插入;
static bool cmp(vector<int> a, vector<int> b)
{if (a[1] < b[1])return true;else if (a[1] == b[1]){return a[0] < b[0];}return false;
}vector<vector<int>> reconstructQueue(vector<vector<int>> &people)
{int len = people.size();if (len < 2)return people;//排序sort(people.begin(), people.end(), cmp);vector<vector<int>> res;res.push_back(people[0]);//对剩下的元素进行插入for (int i = 1; i < len; i++){int cur_high = people[i][0], cur_order = people[i][1];//如果k与前者相同,那么直接插入,因为k相同我是按升高从小到达排序的;//如果身高相同, 并且k=前面的k+1,那么直接插入;if (cur_order == res[i - 1][1] || (cur_high == res[i - 1][0] && cur_order == res[i - 1][1] + 1))res.push_back(people[i]);else{int count = 0;int j = 0;for (; j < i; j++){if (res[j][0] >= cur_high){count++;}if (count >= cur_order){if (j + 1 < i && cur_high > res[j+1][0])continue;j += 1;break;}}res.insert(res.begin() + j, people[i]);}}return res;
}
leetcode每日一题:406.queue-reconstruction-by-height(根据升高重建队列)相关推荐
- LeetCode 406 Queue Reconstruction by Height
#LeetCode 406. Queue Reconstruction by Height 原题链接: Queue Reconstruction by Height ###题目大意: 有一个由[h,k ...
- LeetCode 406. Queue Reconstruction by Height 题解(C++)
LeetCode 406. Queue Reconstruction by Height 题解(C++) 题目描述 Suppose you have a random list of people s ...
- LeetCode 406. Queue Reconstruction by Height
原题链接在这里:https://leetcode.com/problems/queue-reconstruction-by-height/description/ 题目: Suppose you ha ...
- leetcode 406. Queue Reconstruction by Height | 406. 根据身高重建队列(Java)
题目 https://leetcode.com/problems/queue-reconstruction-by-height/ 题解 思路:先排序,后插入. 看到 答案 中的一句话,恍然大悟了: 第 ...
- [Leetcode] 406. Queue Reconstruction by Height 直觉解释
https://leetcode.com/problems/queue-reconstruction-by-height/ 首先,我们找到最小的 height (h, k),这个数据对的最终位置应该是 ...
- 406. Queue Reconstruction by Height
这题本质上是贪心法, 一个原则 "只有比你身高高的或者相等的才对你有影响,插入任何比你小的人都对你没影响" 因此从大到小排列,先处理大的,再处理小的.每次处理时K 就是插入的位置, ...
- leetcode每日一题1609. 奇偶树 圣诞节你做奇偶数了没 BFS套模板一遍过
本文目录 leetcode每日一题1609. 奇偶树 圣诞节你做奇偶数了没 BFS套模板一遍过~ 写在前面 题目 示例 提示 思路 代码实现 执行结果 写在最后 leetcode每日一题1609. 奇 ...
- leetcode每日刷题计划-简单篇day8
leetcode每日刷题计划-简单篇day8 今天是纠结要不要新买手机的一天QAQ想了想还是算了吧,等自己赚钱买,加油 Num 70 爬楼梯 Climbing Stairs class Solutio ...
- Leetcode每日一题:171.excel-sheet-column-number(Excel表列序号)
思路:就是168题的反命题,进制的方式完美解决: Leetcode每日一题:168.excel-sheet-column-title(Excel表名称) class Solution {public: ...
- 【LeetCode每日一题】1723. 完成所有工作的最短时间
[LeetCode每日一题]1723. 完成所有工作的最短时间 [1] 1723. 完成所有工作的最短时间 [2] 473. 火柴拼正方形 [1] 1723. 完成所有工作的最短时间 题目: 给你一个 ...
最新文章
- 三万字,Spark学习笔记
- [转]C++函数模板与模板函数
- 【Linux】一步一步学Linux——group文件详解(108)
- 判断文件是否存在一个API函数
- 孙叫兽进阶之路之压力与绩效
- java8新特性lambda表达式、函数式编程、方法引用和接口默认方法以及内部类访问外部变量
- Android usb audio信息获取(一)
- 从零基础入门Tensorflow2.0 ----八、39.1 gpu1
- Python实现人机中国象棋游戏
- 大数据处理的基本流程
- java物流项目功能介绍_JAVAEE——BOS物流项目13:Quartz概述、创建定时任务、使用JavaMail发送邮件、HighCharts概述、实现区域分区分布图...
- 论文的参考文献怎样标注?
- 抖音、吃鸡、王者荣耀:你的自律,是如何被顶级产品经理一步一步毁掉的
- Kotlin 实战翻译 —— 仿微信图片选择开源库ImagePicker
- 移动云计算的四大特点
- 绝对位置运动指令(MoveAbsJ)
- uni-app封装自己常用的css样式-----自定义css的样式 (便于开发)-----原理简单
- 时间格式中,hh小写的是12小时制,大写(HH)是24小时制的。
- 使用Fragment
- LeetCode:求全由1构成的最大正方形面积
热门文章
- C++并发编程之std::future
- spring boot(十五)spring boot+thymeleaf+jpa增删改查示例
- sublime自动保存(失去焦点自动保存)
- EShop网上商城项目(二)
- [转]Java 对象锁-synchronized()与线程的状态与生命周期
- WPF DataGrid 对行中单元格的访问
- ASP.NET-第一天-数据库知识
- 图解硬盘分区调整/硬盘分区重新调整的好软件/Norton PartitionMagic 版本 8.05 硬盘分区调整/想把硬盘空间调整一下...
- 分析 js构造函数:对象方法 、类方法 、原型方法
- Idea java 程序打jar包(maven)