
class Solution {
public:
static int cmp(vector<int> a, vector<int> b){
if(a[0] != b[0]) // 第一个元素不相等,按照从大到小排序,
return a[0]>b[0];
else // 第一个元素相等,第二个元素按照从小到大排序,
return a[1]<b[1];
}
vector<vector<int>> reconstructQueue(vector<vector<int>>& people) {
int n = people.size();
sort(people.begin(), people.end(),cmp);
vector<vector<int>> queue;
queue.reserve(n);
for(int i = 0; i < people.size(); i++){
// 排序后,以第二个元素为下标进行插入
queue.insert(queue.begin()+people[i][1],people[i]);
}
// for(const auto & p : people) {
// queue.insert(queue.begin() + p[1], p);
// }
return queue;
}
};