LeetCode 406.根据身高重建队列

首先根据身高从小到大排序如果身高相等那么根据第二个值降序排序

class Solution {
public:
    vector<vector<int>> reconstructQueue(vector<vector<int>>& people) {
        int n = people.size();
        sort(people.begin(),people.end(),[](const vector<int>& a,const vector<int>& b){
            return a[0]<b[0] || (a[0]==b[0]&&a[1]>b[1]);
        });
        vector<vector<int>> res(n);
        for(int i=0;i<n;i++){
            int space = 1;
            space += people[i][1];
            for(int j=0;j<n;j++){
                if(res[j].empty()){
                    space--;
                    if(space==0){
                        res[j] = people[i];
                        break;
                    }
                }
            }
        }
        return res;
    }
};
posted @ 2022-11-11 23:13  破忒头头  阅读(18)  评论(0)    收藏  举报