阿克苏网站建设咨询,网络推广公司深圳,泉州网站建设推广企业,徐州网站建设商城制作网站推广seo题目链接难度#xff1a;中等 类型#xff1a; 数组假设有打乱顺序的一群人站成一个队列。 每个人由一个整数对(h, k)表示#xff0c;其中h是这个人的身高#xff0c;k是排在这个人前面且身高大于或等于h的人数。 编写一个算法来重建这个队列。注意#xff1a;总人数…题目链接难度中等 类型 数组假设有打乱顺序的一群人站成一个队列。 每个人由一个整数对(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]]解题思路1.排序按照身高从高到低排升高相同的按k从小到大排2.插入按照排序好的顺序逐个插入新数组插入的位置按照k来插如示例中排序完[[7,0], [7,1], [6,1], [5,0], [5,2][4,4]]插入的过程第一插[[7,0]]第二插[[7,0], [7,1]]第三插[[7,0], [6,1],[7,1]]第四插[[5,0],[7,0], [6,1],[7,1]]...先插高的后插矮的即使后插的插到前面也不会有影像因为矮代码实现class Solution(object):def reconstructQueue(self, people)::type people: List[List[int]]:rtype: List[List[int]]people.sort(keylambda (h, k): (-h, k))res []for p in people:res.insert(p[1],p)return res