Leetcode 每日一题
题目链接: 406. 根据身高重建队列
难度: 中等
解题思路: 这道题需要想一想。他要根据身高以及比它身高高的人数来进行排序。对于某个人,我们需要先按照他的身高进行降序排列(插入时身高靠后),再按照前面的人数顺序排序(以这个关键字插入列表)。即可得到答案。
题解:

import functools as ft
class Solution:
    def reconstructQueue(self, people: List[List[int]]) -> List[List[int]]:
        
        def mycmp(a, b):
            if a[0] == b[0]:
                return 1 if a[1] > b[1] else -1
            else:
                return 1 if a[0] < b[0] else -1
        
        people.sort(key = ft.cmp_to_key(mycmp))

        res = list()

        for p in people:
            res[p[1]:p[1]] = [p]

        return res