leetcode-406

题目
额…想不到是这么做,类似于插入排序,先插大的值,在插小的值,插得位置刚好是它们的第二个变量的值

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;
}