406. Queue Reconstruction by Height的C++解法

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/musechipin/article/details/82868623

先把people按照第一项降序排列(第一项一样的按第二项升序)。然后重新插入即可。
其中要注意的是重写了sort的比较规则,写在一个class内需要在函数前加static。
 

 class Solution {
 public:
	 static bool cmp(pair<int, int> a, pair<int, int> b)
	 {
		 if (a.first == b.first) return a.second < b.second;
		 else return a.first > b.first;
	 }
	 vector<pair<int, int>> reconstructQueue(vector<pair<int, int>>& people) {
		 vector<pair<int, int>> res;
                 if (people.empty()) return res;
		 sort(people.begin(), people.end(),cmp);
		 res.push_back(people[0]);
		 for (int i = 1; i < people.size(); i++)
			 res.insert(res.begin()+people[i].second, 1, people[i]);
		 return res;
	 }
 };

猜你喜欢

转载自blog.csdn.net/musechipin/article/details/82868623