思想:
多关键排序,理解每个位置前边的空位置个数的意义。
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;
}
};