题目描述:假设有打乱顺序的一群人站成一个队列。 每个人由一个整数对(h, k)表示,其中h是这个人的身高,k是排在这个人前面且身高大于或等于h的人数。 编写一个算法来重建这个队列。
解题思路:先按照高度从高到低排序,相同的高度在按照k从低到高排序,然后依次将他们放在输出队列中与k
值对应相等的索引位置上,因为矮个子的人对高个子来说是看不见的,所以后放置矮个子不会影响到高个子前面比他高的人的个数,代码如下:
class Solution:
def reconstructQueue(self, people: List[List[int]]) -> List[List[int]]:
people.sort(key=lambda x:(-x[0], x[1]))
res = []
for p in people:
res.insert(p[1], p)
return res