贪心:leetcode406(中等)——根据身高重建队列

题目

在这里插入图片描述

题解

思路:用纸笔多尝试几次不难发现排序的规律,我的尝试方法是:首先身高最高的必定存在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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值