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