首页 » python » 正文

leetcode406根据身高重建队列(Queue Reconstruction by Height) python

思路:首先,我们把最大的数字按照顺序排好 ,然后再排小的数,就无所谓了,如图:

h2

 

插入第一个元素后从第二个元素开始:

此时插入发现第二个元素[7,1]刚好放在第二个位置,K的值也符合

然后第三个元素[6,1]:

这个时候我们需要插入元素[6,1],注意,数组中已经存在的数据是都比要插入的数据大的

H的值都是7,我们要插入的数据是6,也就是说,6插入在任何位置都不影响前边两个数的

位置,因为k的值是前边>=的个数,[6,1]插入在最开始前边两个元素的k值也是满足的条的

也就是说,我们不需要考虑前边的值,值考虑让[6,1]满足条件即可,那我们就把[6,1]放到位置1

依次类推,完成排序

注意:如果插入的数值H相同,可能会导致数字变化么?不会,因为在第一次按照身高排序的时候,如果相同的,越小的值会樾靠前

代码:

 

 

发表评论