这个题的解法按照身高h降序和k升序对数组中的元素进行排列,然后插入的时候按照索引进行插入
class Solution
{
public:
vector<vector<int>> reconstructQueue(vector<vector<int>>& people)
{
//身高降序排列,人数升序排列
//自定义排序方式,因为是vector<vector<int>>类型的,所以需要自己定义sort的比较函数。a[0]代表第一//people[i]的第一个元素。
sort(people.begin(), people.end(), [](const vector<int>& a, const vector<int>& b)
{
if(a[0] > b[0])
return true;
if(a[0] == b[0] && a[1] <b[1])
return true;
return false;
});
vector<vector<int>> res;
for(int i = 0; i < people.size(); i++)
{
res.insert(res.begin() + people[i][1], people[i]);//resert函数在res.begin() + //people[i][1],位置之前插入people[i].
}
/*for(auto& e : people)
{
res.insert(res.begin() + e[1], e);
}
*/
return res;
}
};