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]]
解题思路:
先根据people[0]降序排列,再对people[1]进行升序排列
然后用插入法进行插入
代码:
class Solution:
def reconstructQueue(self, people: List[List[int]]) -> List[List[int]]:
people.sort(key= lambda x:[-x[0],x[1]])
res = []
for i in people:
res.insert(i[1],i)
return res
参考资料:
https://blog.csdn.net/sinat_43113415/article/details/102948431