美文网首页
406. 根据身高重建队列

406. 根据身高重建队列

作者: 含泪若笑 | 来源:发表于2020-07-28 18:42 被阅读0次

这道题我读了好久才明白是什么意思,是因为忽略了这句话——k是排在这个人前面且身高大于或等于h的人数。看到了这句话才明白为什么demo的输出是那样的。

我觉得这个题的解题思路不是很容易想到,我是看了官方的图解才明白的,然后我自己顺了一下:

首先一定需要按照身高排序,从高到低,因为这样把一个矮的插入都高于他的时候,不会导致已经排好序的人的k值不正确。

然后就是怎么插入k的问题,我觉得解题里面很巧妙,就是把人插入第 k 个位置中,比如有两个人身高不同,但是K相同,那矮的人自然会插入高的人的前面;还有就是身高一样,K值不同,那我们需要先加入K值小的,然后才是大的,所以这里需要按照K的升序排列。

总结就是:身高 h 降序、个数 k 值升序,然后将某个学生插入队列的第 k 个位置中。我觉得很难想到。

学到的JAVA的知识:

我记得之前我就有纠结过类型转换,这道题让我看到了另一个方法,不错。

List<int[]> list = new ArrayList<>();

list.toArray(new int[people.length][]); 我理解转换的时候就是需要一个长度,java是数组的数组,所以我们长度给到外面的就行,里面的类型已经是数组了,这个是我的理解,欢迎纠错。

代码:

https://github.com/hanleirx/LeetCode/blob/master/406.%20%E6%A0%B9%E6%8D%AE%E8%BA%AB%E9%AB%98%E9%87%8D%E5%BB%BA%E9%98%9F%E5%88%97

相关文章

  • TOP 86 - 91

    406. 根据身高重建队列[https://leetcode-cn.com/problems/queue-reco...

  • 406. 根据身高重建队列

    这道题我读了好久才明白是什么意思,是因为忽略了这句话——k是排在这个人前面且身高大于或等于h的人数。看到了这句话才...

  • 406. 根据身高重建队列

    假设有打乱顺序的一群人站成一个队列。 每个人由一个整数对(h, k)表示,其中h是这个人的身高,k是排在这个人前面...

  • 406. 根据身高重建队列

    假设有打乱顺序的一群人站成一个队列。 每个人由一个整数对(h, k)表示,其中h是这个人的身高,k是排在这个人前面...

  • 406.根据身高重建队列

    解法 主要练习下比较器的使用,以及二维数组插入的处理

  • 406. 根据身高重建队列

    一题目: 二思路: 先排序,1.先按照身高排序降序排,2按照位置升序排, 再插入 根本思路:核心思想:高个子先站好...

  • 406. 根据身高重建队列

    假设有打乱顺序的一群人站成一个队列,数组 people 表示队列中一些人的属性(不一定按顺序)。每个 people...

  • LeetCode 406. 根据身高重建队列

    题意:假设有打乱顺序的一群人站成一个队列。 每个人由一个整数对(h, k)表示,其中h是这个人的身高,k是排在这个...

  • LeetCode 406. 根据身高重建队列

    题目 假设有打乱顺序的一群人站成一个队列,数组 people 表示队列中一些人的属性(不一定按顺序)。每个 peo...

  • 根据身高重建队列

    题目描述:假设有打乱顺序的一群人站成一个队列。 每个人由一个整数对(h, k)表示,其中h是这个人的身高,k是排在...

网友评论

      本文标题:406. 根据身高重建队列

      本文链接:https://www.haomeiwen.com/subject/mrjzlktx.html