LeetCode 406
Queue Reconstruction by Height
- Problem Description:
根据身高和序号重组队列。题目给出一组数,如[6, 1]表示该人的身高是6,队列中排在他前面不比他矮的人有1个;如[7, 0]表示该人的身高是7,队列中排在他前面的人都比他矮或者处于第一位。题目要求按照每一组数中第二个值对队伍进行重新排序,使新的队伍满足序号大小。
具体的题目信息:
https://leetcode.com/problems/queue-reconstruction-by-height/description/ - Example:

- Solution:
- 解题思路(?)
这道题目还不是很理解,解法也是在讨论区看到的,还要继续思考。 - 编程实现:
- 解题思路(?)
class Solution {
public:
//先按照身高降序排列,再按照序号升序排列
static bool compare(pair<int, int> a, pair<int, int>b) {
return (a.first>b.first || (a.first==b.first&&a.second<b.second));
}
vector<pair<int, int>> reconstructQueue(vector<pair<int, int>>& people) {
vector<pair<int, int>> result;
if (people.size() == 0||people.size() == 1) return people;
sort(people.begin(), people.end(), compare);
for (int i = 0; i < people.size(); i++) {
result.insert(result.begin()+people[i].second, people[i]);
}
return result;
}
};

本文介绍LeetCode406题目的解决方案,题目要求根据每个人的身高和在其前方不低于其身高的人数来重建队列。通过先按身高降序排序,再按序号升序排序的方法,并使用插入操作实现队列的正确构建。

1924

被折叠的 条评论
为什么被折叠?



