406. 根据身高重建队列

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

注意:

总人数少于1100人。

示例

输入:

[[7,0], [4,4], [7,1], [5,0], [6,1], [5,2]]

输出:

[[5,0], [7,0], [5,2], [6,1], [4,4], [7,1]]

class Solution {
public int[][] reconstructQueue(int[][] people) {
if (0 == people.length || 0 == people[0].length)
return new int[0][0];
//按照身高降序 K升序排序
Arrays.sort(people, new Comparator<int[]>() {
@Override
public int compare(int[] o1, int[] o2) {
return o1[0] == o2[0] ? o1[1] - o2[1] : o2[0] - o1[0];
}
});
List<int[]> list = new ArrayList<>();
//K值定义为 排在h前面且身高大于或等于h的人数
//因为从身高降序开始插入,此时所有人身高都大于等于h
//因此K值即为需要插入的位置
for (int[] i : people) {
list.add(i[1], i);
}
return list.toArray(new int[list.size()][]); }
}

最新文章

  1. [算法总结]three-way partition
  2. 3D Banner(jQuery)
  3. 使用好压(HaoZip)软件打包EverEdit制作安装程序
  4. RedHat下Bugzilla的安装和配置
  5. Take advantage of “Integrated Calling” to know whom suspect talked to
  6. html初学者了解的笔记02
  7. 南邮CTF隐写之丘比龙的女神
  8. HTML5 Audio and JavaScript Control
  9. Ubuntu对FireFox安装flash插件
  10. 手把手教你写电商爬虫-第三课 实战尚妆网AJAX请求处理和内容提取
  11. 校友信息管理&amp;SNS互动平台之技术框架选择
  12. SpringMVC4+thymeleaf3的一个简单实例(篇三:页面参数获取)
  13. RH133读书笔记(1)-Lab 1 Managing Startup
  14. zTree模糊查询人员姓名:getNodesByParamFuzzy
  15. Java数据类型在实际开发中的应用二枚举类型
  16. (转)Spring事务配置的五种方式
  17. 2019-01-23 JavaScript实现ZLOGO: 性能改进
  18. Node.js实战项目学习系列(4) node 对象(global、process进程、debug调试)
  19. 翻译:ZooKeeper OverView
  20. vagrant up报错 Warning: Authentication failure. Retrying...解决方案

热门文章

  1. 两个有序数组 A1 A2 的合并
  2. PMS学习
  3. Linux中链接的概念
  4. python 之模块引入
  5. 「雕爷学编程」Arduino动手做(33)——ESP-01S无线WIFI模块
  6. DPDK Timer Library原理(学习笔记)
  7. Postgres基础操作
  8. java 字符串转为list
  9. HTML中id与name的通俗区别
  10. poj2823单调队列认知