leetcode_queue-reconstruction-by-height

题目链接:
[https://leetcode-cn.com/problems/queue-reconstruction-by-height/]https://leetcode-cn.com/problems/queue-reconstruction-by-height/
解题思路:
1.首先将vector按照h的值从大到小排列,当h的值相同时,按照k从小到大排列。这一步我们可以使用了泛型编程,sort的第三个参数被default为按照第一个元素从小到大排列,我们可以使用一个函数替代原本的排列方法,代码中演示了使用方法。
2.遍历vector,根据k的值进行前插,最后得到的队列每一个值都符合最终要求。
代码如下:

class Solution {  
public:  
    vector<vector<int>> reconstructQueue(vector<vector<int>>& people) {  
       sort(people.begin(), people.end(), [](const vector<int>& u, const vector<int>& v) {  
            return u[0] > v[0] || (u[0] == v[0] && u[1] < v[1]);  
        });  
        vector<vector<int>> res;  
        for (const vector<int>& person: people) { 
            res.insert(res.begin() + person[1], person);  
        }  
        return res;  
    }  
};
上一篇:C. Binary String Reconstruction


下一篇:3D重建