欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

406. 根据身高重建队列

程序员文章站 2022-04-17 13:26:20
...

Q:

406. 根据身高重建队列

A:

这题没做出来,记录下
利用题意中的k为排在前面且身高大于等于这个人的数量。则先把身高高的都排好,然后把当前这个人往里排的时候,就直接看这个人的k值是多少,插到对应位置就行了。异常巧妙的是,这个方法正好利用了题目k的定义,反正我是想不出来。

class Solution {
public:
    static bool cmp(const vector<int>& a,const vector<int>& b){
        return a[0]>b[0] or a[0]==b[0] and a[1]<b[1];
    }
    vector<vector<int>> reconstructQueue(vector<vector<int>>& people) {
        if(people.empty()){
            return vector<vector<int>>();
        }
        vector<vector<int>> res;
        sort(people.begin(),people.end(),cmp);
        // for(auto vec:people){
        //     cout<<vec[0]<<" "<<vec[1]<<endl;
        // }
        res.push_back(people[0]);
        for(int i=1;i<people.size();++i){
            res.insert(res.begin()+people[i][1],people[i]);
        }
        return res;
    }
};
相关标签: c++ leetcode