从高到低排序的原因是矮的人插入其所在位置时不会对高的产生影响
这样前面排好了,把矮的人插入其应该所在的位置就行
def reconstructQueue(self, people):
"""
:type people: List[List[int]]
:rtype: List[List[int]]
"""
res = []
people = sorted(people,key = lambda x : (-x[0],x[1])) #身高从高到低排序,就知道每个身高前面比它高的有多少人了
for i in people: #从高到矮判断,排序后的相同高度之间的相对位置已经正确了
if len(res) > i[1]: #排在矮子前面的人多于矮子应该所在的位置
res.insert(i[1],i) #将矮子放到正确的位置,矮子放在哪都不会影响之前高个子之间的相对位置
else: #由于是从高到低排序的,后面低的人排在哪都不会影响高的人
res.append(i)
return