题目
题解
思路:用纸笔多尝试几次不难发现排序的规律,我的尝试方法是:首先身高最高的必定存在k=0,以这个为基准可以发现排序的规律;例如示例数组:[[7, 0], [4, 4], [7, 1], [5, 0], [6, 1], [5, 2]];
先选[7,0],接着[7,1]放[7,0]后面,然后[6,1]、[5,0]、[5,2]…
这么排的原因是,先排高的人,再插入矮个子就不会对现有元素的k造成影响;
class Solution:
def reconstructQueue(self, people: List[List[int]]) -> List[List[int]]:
people.sort(key=lambda x: [-x[0], x[1]]) #第一个元素逆序,第二个正序
ans = list()
n = len(people)
for person in people:
ans.insert(person[1], person)
return ans