
题目
额…想不到是这么做,类似于插入排序,先插大的值,在插小的值,插得位置刚好是它们的第二个变量的值
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32
|
using namespace std;
auto (vector<pair<int, int>>& people) { vector<pair<int, int>> res; auto cmp = [](auto p1, auto p2){return p1.first>p2.first||(p1.first==p2.first&&p1.second<p2.second);}; sort(people.begin(), people.end(), cmp); for(auto p:people) { res.insert(res.begin()+p.second, p); } return res; }
int main() { vector<pair<int, int>> people; people.push_back(make_pair(7, 0)); people.push_back(make_pair(4, 4)); people.push_back(make_pair(7, 1)); people.push_back(make_pair(5, 0)); people.push_back(make_pair(6, 1)); people.push_back(make_pair(5, 2)); auto ans = reconstructQueue(people); for(auto p:ans) { cout<<"["<<p.first<<", "<<p.second<<"], "; } return 0; }
|
近期评论