zoukankan      html  css  js  c++  java
  • 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]]

    来源:力扣(LeetCode)
    链接:https://leetcode-cn.com/problems/queue-reconstruction-by-height

    解题思路:我们先将people向量排序,排序方法是按照升高从大到小派,相同身高下将k较小的排在前面,然后依次插入到一个新的向量中。

    class Solution {
    public:
        
        static bool cmp(vector<int>& a, vector<int>& b)
        {
            if(a[0]>b[0]||((a[0]==b[0])&&(a[1]<b[1])))
                return true;
            else
                return false;
        }
        
        vector<vector<int>> reconstructQueue(vector<vector<int>>& people) {
            
            sort(people.begin(),people.end(),cmp);
            vector<vector<int>> queue;
            for(auto& a:people)
            {
                queue.insert(queue.begin()+a[1],a);
            }
            return queue;
            
            
        }
    };
  • 相关阅读:
    java 中 堆、栈的区别(转)
    斐波那契数列(关于递归)
    .NetCore使用Hangfire
    大话西游系统文件分析
    VC游戏开发图片镂空
    华硕XTion Pro开发环境配置
    TweenMax 参数说明(中文翻译)
    程序员的追求
    最近得到的
    mvc的json
  • 原文地址:https://www.cnblogs.com/szqfreiburger/p/11919041.html
Copyright © 2011-2022 走看看