文章目录

  • 题目描述
  • 思路 && 代码
    • 二刷

题目描述

  • 老阅读题了= =,第一遍看题的时候一脸懵逼
  • 但其实代码就6行(嘿嘿)

思路 && 代码

  • 先按照身高降序排,再按照人数升序排(套路题)
class Solution {public int[][] reconstructQueue(int[][] people) {// 身高降序,人数升序Arrays.sort(people, (p1, p2) -> ((p1[0] == p2[0] ? p1[1] - p2[1] : p2[0] - p1[0])));List<int[]> ans = new ArrayList<>();// 排序后的数组,按照【前面的人数个数】进行插入即可for(int[] temp : people) {ans.add(temp[1], temp);}return ans.toArray(new int[ans.size()][]);}
}
// 主要原理:考虑后效性,较大元素的 ki 值,实际上和较小值无关。
  • 无注释版
class Solution {public int[][] reconstructQueue(int[][] people) {Arrays.sort(people, (p1, p2) -> ((p1[0] == p2[0] ? p1[1] - p2[1] : p2[0] - p1[0])));List<int[]> ans = new ArrayList<>();for(int[] temp : people) {ans.add(temp[1], temp);}return ans.toArray(new int[ans.size()][]);}
}

二刷

  • 这类题写着还是舒服,代码少= =
class Solution {public int[][] reconstructQueue(int[][] people) {// 身高逆序,人数正序Arrays.sort(people, (int[] a, int[] b) -> (a[0] == b[0] ? a[1] - b[1] : b[0] - a[0]));List<int[]> ans = new ArrayList<>();// 高的先插;按照前面的人个数,进行插入(往后,更矮 or 人数更多的人,不会改变之前的数组的人数正确性,无后效性)for(int[] temp : people) {ans.add(temp[1], temp);}return ans.toArray(new int[ans.size()][]);}
}

【LeetCode笔记】406. 根据身高重建队列(Java、偏数学)相关推荐

  1. c语言编程 插队排身高,【C语言刷LeetCode】406. 根据身高重建队列(M)

    [ 假设有打乱顺序的一群人站成一个队列. 每个人由一个整数对(h, k)表示,其中h是这个人的身高,k是排在这个人前面且身高大于或等于h的人数. 编写一个算法来重建这个队列. 注意: 总人数少于110 ...

  2. 力扣Leetcode之Java解题406根据身高重建队列

    406. 根据身高重建队列 题目: 假设有打乱顺序的一群人站成一个队列,数组 people 表示队列中一些人的属性(不一定按顺序).每个 people[i] = [hi, ki] 表示第 i 个人的身 ...

  3. Java实现 LeetCode 406 根据身高重建队列

    406. 根据身高重建队列 假设有打乱顺序的一群人站成一个队列. 每个人由一个整数对(h, k)表示,其中h是这个人的身高,k是排在这个人前面且身高大于或等于h的人数. 编写一个算法来重建这个队列. ...

  4. 贪心算法|406. 根据身高重建队列|先排序后插队

    贪心算法|406. 根据身高重建队列|先排序后插队 406. 根据身高重建队列 - 力扣(LeetCode) (leetcode-cn.com) 题目 假设有打乱顺序的一群人站成一个队列,数组 peo ...

  5. 406. 根据身高重建队列

    链接:406. 根据身高重建队列 题解: class Solution {public:vector<vector<int>> reconstructQueue(vector& ...

  6. Suzy想吃烤蛋挞了Day35 | 贪心算法进行时:860. 柠檬水找零,406. 根据身高重建队列,452. 用最少数量的箭引爆气球

    860. 柠檬水找零 solution 不要漏掉的一种情况是:如果收到了20,可以找10+5,或者5+5+5 class Solution:def lemonadeChange(self, bills ...

  7. 代码随想录35——贪心:860柠檬水找零、406根据身高重建队列、452用最少数量的箭引爆气球

    文章目录 1.860柠檬水找零 1.1.题目 1.2.解答 2.406根据身高重建队列 2.1.题目 2.2.解答 3.452用最少数量的箭引爆气球 3.1.题目 3.2.解答 1.860柠檬水找零 ...

  8. 代码随想录算法训练营第35天|860.柠檬水找零,406.根据身高重建队列,452. 用最少数量的箭引爆气球

    代码随想录算法训练营第35天|860.柠檬水找零,406.根据身高重建队列,452. 用最少数量的箭引爆气球 860.柠檬水找零 406. 根据身高重建队列 452. 用最少数量的箭引爆气球 860. ...

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

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

最新文章

  1. weight decay (权值衰减)
  2. 分页符与分节符的区别
  3. opencv中vc14和vc15的区别?
  4. NLP, 知识图谱参考资源
  5. 仪表盘加载数据nan_6种数据格式对比,用Jupyter+pandas高效数据分析
  6. CFileDialog常见用法
  7. Unity中Light Probe详解
  8. 手势识别器GestureDetector
  9. k touch for android,k touch for android
  10. sketch(一)--安装和介绍
  11. 【微积分的本质|笔记】隐函数求导的意义与理解
  12. 博雅数智|3.23直播笔记
  13. AT32驱动TFT LCD显示示例
  14. java中的数组长度的计算
  15. matlab实现图形几何变换如平移,matlab实现平面图形的几何变换
  16. 如何使用“MRT”恶意软件删除工具
  17. 普林斯顿大学算法公开课笔记
  18. Excel中批量快速删除空行
  19. 【概率论】理解贝叶斯(Bayes)公式:为什么疾病检测呈阳性,得这种病的概率却不高?
  20. 联想R720安装原装内存条图文过程

热门文章

  1. 带父节点的平衡二叉树_深入理解(二叉树、平衡二叉树、B-Tree、B+Tree )的区别
  2. java ssl 无证书_java – 如何修复SSL – 没有可用的证书
  3. docker php 一键部署_Java开发提升十倍生产力:Idea远程一键部署springboot到Docker
  4. python爬取网页有乱码怎么解决_Python爬取网页requests乱码
  5. a4b5笔记本大小对比_天津订做笔记本*价格多少【广通印务】
  6. C++ #include <.h>和“.h“的区别
  7. Python 操作 Elasticsearch 实现 增 删 改 查
  8. C++学习之路 | PTA乙级—— 1046 划拳 (15 分)(精简)
  9. C++学习之路 | PTA(天梯赛)—— L2-007 家庭房产 (25分)(带注释)(并查集)(精简)
  10. 改进初学者的PID-积分饱和