根据身高重建队列

根据身高重建队列

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

解题思路

先排序,再插入,排序的规则是:按照高度 h 降序,k 升序排序。再遍历排序后的数组,根据 k 将元素插入到 k 的位置上。核心思想是:高个子先站好位,矮个子插入到 k 位置上,前面肯定有 k 个高个子

class Solution {
    
    public int[][] reconstructQueue(int[][] people) {
        Arrays.sort(people, (o1, o2) -> o1[0] == o2[0] ? o1[1] - o2[1] : o2[0] - o1[0]);
        LinkedList<int[]> list = new LinkedList<>();
        for (int[] i : people) {
            list.add(i[1], i);
        }
        return list.toArray(new int[list.size()][2]);
    }
}

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/2598.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • s3c2440启动过程分析

    s3c2440启动过程分析2440启动过程分析作者:王辉 2440启动过程算是一个难点,不太容易理解,而对于2440启动过程的理解,影响了后面裸机代码执行流程的分析,从而看出2440启动过程的重要性。 1 2440启动方式和启动方式选择在S3C2440的datasheet《S3C2440A_UserManual_Rev13.pdf》中搜索map,可以在第5章中搜索到下图。 从此

    2022年6月11日
    25
  • java 获取字符串编码格式_输入字符串的格式要求

    java 获取字符串编码格式_输入字符串的格式要求publicstaticStringgetEncoding(Stringstr){ Stringencode=”GB2312″; try{ if(str.equals(newString(str.getBytes(encode),encode))){//判断是不是GB2312 Strings=encode; returns;//是的…

    2022年9月13日
    0
  • Android service ( 一 ) 三种开启服务方法

    Android service ( 一 ) 三种开启服务方法一、Service简介Service是android系统中的四大组件之一(Activity、Service、BroadcastReceiver、ContentProvider),它跟Activ

    2022年7月4日
    18
  • 火星今天飞抵西非国家寻找埃博拉疫情

    火星今天飞抵西非国家寻找埃博拉疫情

    2022年1月9日
    41
  • GridView控件实现分页功能[通俗易懂]

    初识ASP.NET中的控件,还是折腾了一小会儿,就把我折腾的结果给大家看看:表格显示数据时网站开发中的一个常见的功能,ASP.NET提供了很多工具在网页中显示表格,GridView控件就是最常见的一个,下面说说如何实现这个控件的分页功能。    首先我在数据库中建好了一张表,里面输入了一些学生的信息,数据表是这样的:    下面我们将数据库中的数据导入到Gr

    2022年4月5日
    48
  • Django(17)orm查询操作[通俗易懂]

    Django(17)orm查询操作[通俗易懂]前言查找是数据库操作中一个非常重要的技术。查询一般就是使用filter、exclude以及get三个方法来实现。我们可以在调用这些方法的时候传递不同的参数来实现查询需求。在ORM层面,这些查询条件都

    2022年7月28日
    5

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号