Queue Reconstruction by Height

题目来源
一道贪心题,给你一堆pair,表示一个人的身高以及前面有几个人高于等于他(她),然后让你将其按顺序排好。
我思考了一会没啥想法,然后就看了答案。
实际上只要先将数组排好序,先按身高降序排序,再按第二个参数升序排序,然后从头往尾遍历,因为已经插入的都比大于等于待插入的,所以实际上后面这些数不会对前面的造成影响。

class Solution {
public:
    vector> reconstructQueue(vector>& people) {
        sort(people.begin(), people.end(), [](pairp1, pairp2) {
            return p1.first > p2.first || (p1.first == p2.first && p1.second < p2.second);
        });
        vector> res;
        for (pair person : people)
            res.insert(res.begin()+person.second, person);
        return res;
    }
};

你可能感兴趣的:(Queue Reconstruction by Height)