Leetcode 406. 根据身高重建队列 题解

题目链接

思想:

在这里插入图片描述
多关键排序,理解每个位置前边的空位置个数的意义。

c++代码:

class Solution {
    
    
public:
    vector<vector<int>> reconstructQueue(vector<vector<int>>& p) {
    
    
        sort(p.begin(),p.end(),[](const vector<int>a, const vector<int> b){
    
    
            return a[0]<b[0] || (a[0]==b[0] && a[1]>b[1]);}
        );
        int n=p.size();
        vector<vector<int>> ans(n);
        for(const vector<int>& pp: p){
    
    //迭代器
            int space = pp[1]+1;
            for(int i=0;i<n;i++){
    
    //寻找空余位置
                if(ans[i].empty())space--;
                if(space==0){
    
    
                    ans[i]=pp;
                    break;
                }
            }
        }
        return ans;
    }
};

猜你喜欢

转载自blog.csdn.net/weixin_44080131/article/details/114791796