「每日LeetCode」2020年11月16日
本文最后更新于:2023年3月19日 晚上
Lt406. 根据身高重建队列
406. 根据身高重建队列
假设有打乱顺序的一群人站成一个队列。 每个人由一个整数对(h, k)
表示,其中h
是这个人的身高,k
是排在这个人前面且身高大于或等于h
的人数。 编写一个算法来重建这个队列。
注意:
总人数少于 1100 人。
示例
1 |
|
思路
关键是发现以下规律:对已排好的高身高中插入矮身高得到的结果仍然是符合要求的
所以先执行排序,则可以保证之后遍历插入顺序符合先插高个子再插矮个子的要求:按身高降序,相同升高按人数升序
。
排序后,k 是排在 h 前面且身高大于或等于 h 的人数 ,因为先插入了高个子。此时结果数组中所有人身高都大于等于当前人的身高,所以k即为需要插入的位置的下标
。
解答
1 |
|
本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!