1. 程式人生 > >406.根據身高重建佇列

406.根據身高重建佇列

假設有打亂順序的一群人站成一個佇列。 每個人由一個整數對(h, k)表示,其中h是這個人的身高,k是排在這個人前面且身高大於或等於h的人數。 編寫一個演算法來重建這個佇列。

注意: 總人數少於1100人。

示例

輸入:
[[7,0], [4,4], [7,1], [5,0], [6,1], [5,2]]

輸出:
[[5,0], [7,0], [5,2], [6,1], [4,4], [7,1]]

在真實的面試中遇到過這道題?

class Solution { public:     vector<pair<int, int>> reconstructQueue(vector<pair<int, int>>& people) {         sort(people.begin(), people.end(), [](const pair<int, int>& a, const pair<int, int>& b) {             return a.first > b.first || (a.first == b.first && a.second < b.second);         });         vector<pair<int, int>> res;         for (auto a : people) {             res.insert(res.begin() + a.second, a);         }         return res;     } };