zoukankan      html  css  js  c++  java
  • leetcode 406. 根据身高重建队列

    题意

    将一群人按排好序,然后制定了一个规则为people[i]=[hi,ki];hi表示该位置人的身高,ki表示i前面身高大于或等于i身高的人数

    思路

    按身高从小到大的顺序放入队列中,i前面有身高比他低的人对ki的值没有影响,所以可以假设后面放进来的都是比前面身高高的,
    这样我们可以根据k值来决定该点应该放入的位置。对于身高相同的人来说,因为后放代表会对前面放的产生影响,所以我们可以规定身高相同的k值越大,身高越小。

    code:

    class Solution {
    private:
        static bool cmp(vector<int>&u,vector<int>&v){
            return u[0]<v[0] || (u[0]==v[0] && u[1]>v[1]);
        }
    public:
        vector<vector<int>> reconstructQueue(vector<vector<int>>& people) {
            sort(people.begin(),people.end(),cmp);
            int n=people.size();
            vector<vector<int>>ans(n);
            for(int i=0;i<people.size();i++){
                int space=people[i][1]+1;
                for(int j=0;j<n;j++){
                    if(ans[j].empty()){
                        space--;
                        if(!space) ans[j]=people[i];
                    }
                }
            }
            return ans;
        }
    };
    
    
    七月在野,八月在宇,九月在户,十月蟋蟀入我床下
  • 相关阅读:
    数据库之01-数据库概述
    Bootstrap框架
    jQuery
    补充:html速查表
    BOM,DOM相关案例
    BOM,DOM
    函数,词法分析,内置对象和方法
    前端 之 JaveScript 基础语法: 数据类型; 运算符; 数据转换; 流程控制; 常用内置对象;
    favicon.ioc使用以及注意事项
    redux-undo
  • 原文地址:https://www.cnblogs.com/voids5/p/14157238.html
Copyright © 2011-2022 走看看