第一眼觉得有一种逆向单调栈的既视感
看评论区举了一个很生动形象的例子,自己还是写不出来
vector<vector<int>> reconstructQueue(vector<vector<int>>& people) {
vector<vector<int>> ans;
sort(people.begin(), people.end(), [](const vector<int>& u, const vector<int>& v){
return u[0] > v[0] || (u[0] == v[0] && u[1] < v[1]);
});
for (const vector<int>& person:people)
ans.insert(ans.begin() + person[1], person);
return ans;
}
官解看完两个感觉:
- 重写sort函数的比较规则好厉害,用的似乎是lambda表达式
- vector居然还有insert()方法,真是bug