【LeetCode笔记】406. 根据身高重建队列(Java、偏数学)
文章目录
- 题目描述
- 思路 && 代码
- 二刷
题目描述
- 老阅读题了= =,第一遍看题的时候一脸懵逼
- 但其实代码就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、偏数学)相关推荐
- c语言编程 插队排身高,【C语言刷LeetCode】406. 根据身高重建队列(M)
[ 假设有打乱顺序的一群人站成一个队列. 每个人由一个整数对(h, k)表示,其中h是这个人的身高,k是排在这个人前面且身高大于或等于h的人数. 编写一个算法来重建这个队列. 注意: 总人数少于110 ...
- 力扣Leetcode之Java解题406根据身高重建队列
406. 根据身高重建队列 题目: 假设有打乱顺序的一群人站成一个队列,数组 people 表示队列中一些人的属性(不一定按顺序).每个 people[i] = [hi, ki] 表示第 i 个人的身 ...
- Java实现 LeetCode 406 根据身高重建队列
406. 根据身高重建队列 假设有打乱顺序的一群人站成一个队列. 每个人由一个整数对(h, k)表示,其中h是这个人的身高,k是排在这个人前面且身高大于或等于h的人数. 编写一个算法来重建这个队列. ...
- 贪心算法|406. 根据身高重建队列|先排序后插队
贪心算法|406. 根据身高重建队列|先排序后插队 406. 根据身高重建队列 - 力扣(LeetCode) (leetcode-cn.com) 题目 假设有打乱顺序的一群人站成一个队列,数组 peo ...
- 406. 根据身高重建队列
链接:406. 根据身高重建队列 题解: class Solution {public:vector<vector<int>> reconstructQueue(vector& ...
- Suzy想吃烤蛋挞了Day35 | 贪心算法进行时:860. 柠檬水找零,406. 根据身高重建队列,452. 用最少数量的箭引爆气球
860. 柠檬水找零 solution 不要漏掉的一种情况是:如果收到了20,可以找10+5,或者5+5+5 class Solution:def lemonadeChange(self, bills ...
- 代码随想录35——贪心:860柠檬水找零、406根据身高重建队列、452用最少数量的箭引爆气球
文章目录 1.860柠檬水找零 1.1.题目 1.2.解答 2.406根据身高重建队列 2.1.题目 2.2.解答 3.452用最少数量的箭引爆气球 3.1.题目 3.2.解答 1.860柠檬水找零 ...
- 代码随想录算法训练营第35天|860.柠檬水找零,406.根据身高重建队列,452. 用最少数量的箭引爆气球
代码随想录算法训练营第35天|860.柠檬水找零,406.根据身高重建队列,452. 用最少数量的箭引爆气球 860.柠檬水找零 406. 根据身高重建队列 452. 用最少数量的箭引爆气球 860. ...
- leetcode 406. Queue Reconstruction by Height | 406. 根据身高重建队列(Java)
题目 https://leetcode.com/problems/queue-reconstruction-by-height/ 题解 思路:先排序,后插入. 看到 答案 中的一句话,恍然大悟了: 第 ...
最新文章
- weight decay (权值衰减)
- 分页符与分节符的区别
- opencv中vc14和vc15的区别?
- NLP, 知识图谱参考资源
- 仪表盘加载数据nan_6种数据格式对比,用Jupyter+pandas高效数据分析
- CFileDialog常见用法
- Unity中Light Probe详解
- 手势识别器GestureDetector
- k touch for android,k touch for android
- sketch(一)--安装和介绍
- 【微积分的本质|笔记】隐函数求导的意义与理解
- 博雅数智|3.23直播笔记
- AT32驱动TFT LCD显示示例
- java中的数组长度的计算
- matlab实现图形几何变换如平移,matlab实现平面图形的几何变换
- 如何使用“MRT”恶意软件删除工具
- 普林斯顿大学算法公开课笔记
- Excel中批量快速删除空行
- 【概率论】理解贝叶斯(Bayes)公式:为什么疾病检测呈阳性,得这种病的概率却不高?
- 联想R720安装原装内存条图文过程
热门文章
- 带父节点的平衡二叉树_深入理解(二叉树、平衡二叉树、B-Tree、B+Tree )的区别
- java ssl 无证书_java – 如何修复SSL – 没有可用的证书
- docker php 一键部署_Java开发提升十倍生产力:Idea远程一键部署springboot到Docker
- python爬取网页有乱码怎么解决_Python爬取网页requests乱码
- a4b5笔记本大小对比_天津订做笔记本*价格多少【广通印务】
- C++ #include <.h>和“.h“的区别
- Python 操作 Elasticsearch 实现 增 删 改 查
- C++学习之路 | PTA乙级—— 1046 划拳 (15 分)(精简)
- C++学习之路 | PTA(天梯赛)—— L2-007 家庭房产 (25分)(带注释)(并查集)(精简)
- 改进初学者的PID-积分饱和