思路:先对队列进行排序,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(根据升高重建队列)相关推荐

  1. LeetCode 406 Queue Reconstruction by Height

    #LeetCode 406. Queue Reconstruction by Height 原题链接: Queue Reconstruction by Height ###题目大意: 有一个由[h,k ...

  2. LeetCode 406. Queue Reconstruction by Height 题解(C++)

    LeetCode 406. Queue Reconstruction by Height 题解(C++) 题目描述 Suppose you have a random list of people s ...

  3. LeetCode 406. Queue Reconstruction by Height

    原题链接在这里:https://leetcode.com/problems/queue-reconstruction-by-height/description/ 题目: Suppose you ha ...

  4. leetcode 406. Queue Reconstruction by Height | 406. 根据身高重建队列(Java)

    题目 https://leetcode.com/problems/queue-reconstruction-by-height/ 题解 思路:先排序,后插入. 看到 答案 中的一句话,恍然大悟了: 第 ...

  5. [Leetcode] 406. Queue Reconstruction by Height 直觉解释

    https://leetcode.com/problems/queue-reconstruction-by-height/ 首先,我们找到最小的 height (h, k),这个数据对的最终位置应该是 ...

  6. 406. Queue Reconstruction by Height

    这题本质上是贪心法, 一个原则 "只有比你身高高的或者相等的才对你有影响,插入任何比你小的人都对你没影响" 因此从大到小排列,先处理大的,再处理小的.每次处理时K 就是插入的位置, ...

  7. leetcode每日一题1609. 奇偶树 圣诞节你做奇偶数了没 BFS套模板一遍过

    本文目录 leetcode每日一题1609. 奇偶树 圣诞节你做奇偶数了没 BFS套模板一遍过~ 写在前面 题目 示例 提示 思路 代码实现 执行结果 写在最后 leetcode每日一题1609. 奇 ...

  8. leetcode每日刷题计划-简单篇day8

    leetcode每日刷题计划-简单篇day8 今天是纠结要不要新买手机的一天QAQ想了想还是算了吧,等自己赚钱买,加油 Num 70 爬楼梯 Climbing Stairs class Solutio ...

  9. Leetcode每日一题:171.excel-sheet-column-number(Excel表列序号)

    思路:就是168题的反命题,进制的方式完美解决: Leetcode每日一题:168.excel-sheet-column-title(Excel表名称) class Solution {public: ...

  10. 【LeetCode每日一题】1723. 完成所有工作的最短时间

    [LeetCode每日一题]1723. 完成所有工作的最短时间 [1] 1723. 完成所有工作的最短时间 [2] 473. 火柴拼正方形 [1] 1723. 完成所有工作的最短时间 题目: 给你一个 ...

最新文章

  1. 三万字,Spark学习笔记
  2. [转]C++函数模板与模板函数
  3. 【Linux】一步一步学Linux——group文件详解(108)
  4. 判断文件是否存在一个API函数
  5. 孙叫兽进阶之路之压力与绩效
  6. java8新特性lambda表达式、函数式编程、方法引用和接口默认方法以及内部类访问外部变量
  7. Android usb audio信息获取(一)
  8. 从零基础入门Tensorflow2.0 ----八、39.1 gpu1
  9. Python实现人机中国象棋游戏
  10. 大数据处理的基本流程
  11. java物流项目功能介绍_JAVAEE——BOS物流项目13:Quartz概述、创建定时任务、使用JavaMail发送邮件、HighCharts概述、实现区域分区分布图...
  12. 论文的参考文献怎样标注?
  13. 抖音、吃鸡、王者荣耀:你的自律,是如何被顶级产品经理一步一步毁掉的
  14. Kotlin 实战翻译 —— 仿微信图片选择开源库ImagePicker
  15. 移动云计算的四大特点
  16. 绝对位置运动指令(MoveAbsJ)
  17. uni-app封装自己常用的css样式-----自定义css的样式 (便于开发)-----原理简单
  18. 时间格式中,hh小写的是12小时制,大写(HH)是24小时制的。
  19. 使用Fragment
  20. LeetCode:求全由1构成的最大正方形面积

热门文章

  1. C++并发编程之std::future
  2. spring boot(十五)spring boot+thymeleaf+jpa增删改查示例
  3. sublime自动保存(失去焦点自动保存)
  4. EShop网上商城项目(二)
  5. [转]Java 对象锁-synchronized()与线程的状态与生命周期
  6. WPF DataGrid 对行中单元格的访问
  7. ASP.NET-第一天-数据库知识
  8. 图解硬盘分区调整/硬盘分区重新调整的好软件/Norton PartitionMagic 版本 8.05 硬盘分区调整/想把硬盘空间调整一下...
  9. 分析 js构造函数:对象方法 、类方法 、原型方法
  10. Idea java 程序打jar包(maven)