Week Training: 406 Queue Reconstruction by Height

本文介绍了一种高效的队列重构算法。通过首先按第一个元素降序排序,再按第二个元素升序排序,最后根据排序后的队列中元素的第二个值进行插入操作,实现了快速重构队列的目的。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Before, I traverse the vector times and times to find the one to insert into the new vector each time, with a low efficiency. However, I was impressed by another ingenious method and used it without hesitation. We first sort the vector descending first element, then the ascending second element. After that, we just insert each element in the sorted vector based on its second value. An amazing way to solve this problem.

class Solution {
public:
    static bool comp(pair<int, int> a, pair<int, int> b){
        return a.first > b.first || (a.first == b.first && a.second < b.second);
    }
    vector<pair<int, int>> reconstructQueue(vector<pair<int, int>>& people) {
        vector<pair<int, int>> re;
        int size = people.size();
        sort(people.begin(),people.end(),comp);
        for(int i=0;i<people.size();i++){
            re.insert(re.begin()+people[i].second,people[i]);
        }
        return re;
    }
};


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值