406. Queue Reconstruction by Height(根据身高重建队列)中等难度

从玩具车到手机充电:手把手带你用Multisim仿真Buck/Boost电路(附工程文件) 本文通过Multisim仿真软件,手把手教你搭建Buck降压电路和Boost升压电路,实现从12V到5V或3.7V到5V的电压转换。文章详细介绍了电路搭建步骤、关键波形观测技巧及常见故障排查方法,并附赠工程文件,帮助电子爱好者快速掌握电源转换技术。 阅读详情

假设有打乱顺序的一群人站成一个队列。 每个人由一个整数对(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]]

这道题我思考了很多方法,包括说一个一个地排序(选择排序),但是有个很大的问题就是这种排序出来的只有第一个是符合要求要求的,后面的很有可能不符合要求。

所以我看了AC之后才想到一种比较方便的方法:首先是先排序,从大到小,并且数相等的情况下K值大的排后边。为什么?因为考虑到K值,所以从大到小排序的话,最大的数的K值的位置就因该是他们所处的位置。

然后在这个数组里面进行二次排序,排序的依据他们的K值,比如K=0,那么就朝首位插入。

class Solution {
public:
 bool paixu (pair<int, int> a , pair<int, int> b){
        if(a.first == b.first ) return a.second < b.second ;
        return a.first > b.first ;
    }
    vector<pair<int, int>> reconstructQueue(vector<pair<int, int>>& people) {
        sort(people.begin(),people.end(),paixu);
        });//还是排序,先按照他们的高度从高到低(因为我后面用的从前往后遍历插入,当然也可以从低到高)排序,如果高度一样,那么按照k值从小到大排序。
/*sort函数的第二种写法:
 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(people.size());
        for(int i = 0;i < people.size();i++)
        {
            ////此时前面的人一定都比后面的高所以他们的k就是他们应该在的位置
            res.insert(res.begin()+people[i].second , people[i]);
        }
        res.resize(people.size());  //设置大小(size); 
        return res;
    }
};

 

汽车软件工程师必看:ASPICE流程实战指南(附完整产物清单) 本文为汽车软件工程师提供ASPICE流程实战指南,详细解析如何搭建合规开发环境、各阶段文档产出清单及工具链整合策略。通过实战案例和模板资源,帮助团队高效实施ASPICE标准,提升软件开发质量与效率。 阅读详情

相关推荐

使用 AFL++ 对 IoT 二进制文件进行模糊测试 - 第一部分

American fuzzy lop 是一款面向安全的模糊测试器,它采用一种新型的编译时插桩和遗传算法,可以自动发现干净、有趣的测试用例,从而触发目标二进制文件中新的内部状态。这显著提高了模糊测试代码的功能覆盖率。AFL 的地址是它已经有一段时间没有更新了。虽然 AFL 仍然运行良好,但有一个新项目 AFL++,它是 AFL 的一个分支,包含许多改进和新功能。AFL++ 的地址是,其源代码位于。在本文中,我们将研究如何使用 AFL++ 对 IoT 二进制文件进行模糊测试。

技术超强的网络安全平台 1086

java内部考试第四题

4.使用面向对象思想,编写Java程序。键盘接收用户输入的5位学生(Student)的姓名(name)和身高(height,单位是米),输出这些学生的平均身高。package com.lym.www;import java.util.Scanner;public class Shengao { public static void main(String[] args) {        Str...

Liyiming85的博客 2949

【硬件开源实战】STM32G070RBT6开发板从设计到避坑全解析

本文全面解析了STM32G070RBT6开发板从硬件设计到避坑的实战经验。详细介绍了电源设计、时钟电路、PCB布局等关键环节,分享了成本控制、焊接测试、软件开发和外设驱动的实用技巧,帮助开发者高效完成项目开发。

weixin_26897585的博客 235

【leetcode】406. 根据身高重建队列

贪心算法

weixin_43166107的博客 995

Simulink小白必看:用Simscape轻松搭建二阶倒立摆模型(附完整参数配置)

本文为Simulink初学者提供了使用Simscape Multibody模块库,从零开始搭建二阶倒立摆非线性物理模型的完整实战教程。文章详细讲解了如何通过物理组件(如刚体、关节)直观建模,替代复杂的数学推导,并涵盖参数配置、仿真调试及模型线性化方法,帮助读者快速掌握这一高效的物理建模路径。

grpc6streamer的博客 1045

均值场博弈_平均场博弈(mean field game)

The New Big Fish Called Mean-Field Game Theory原文链接http://www.science4all.org/article/mean-field-games/​www.science4all.org主要内容在经典博弈论中,它对附近其他鱼类的行为做出反应。这是非常复杂的,因为不同的鱼类之间会有大量的相互作用。这意味着经典博弈论对应于一长串高度耦合的方程。...

weixin_34773479的博客 3680

leetcode 406. 根据身高重建队列-java题解

lamba表达式的自定义排序o1,o2中o1 - o2这样的默认是升序 也就是从小到大排序同时还要注意list.add(index,element)这种方法例子假设有打乱顺序的一群人站成一个队列,数组 people 表示队列中一些人的属性(不一定按顺序)。每个 people[i] = [hi, ki] 表示第 i 个人的身高为 hi ,前面 正好 有 ki 个身高大于或等于 hi 的人。请你重新构造并返回输入数组 people 所表示的队列。

qq_41810415的博客 592

wsl2内核版本和模块版本不一致解决方法

** /lib/modules/…build: No such file or directory错误解决办法这篇文章历时1个月整,从4月5日一直到5月5日,这一问题才得以解决。

m0_60634555的博客 5103

C++ sort函数自定义比较函数的效率

本文用于记录实践中遇到的自定义比较函数效率问题,暂不涉及底层原理。——2022.03.01. leetcode question406,重建队列。 如果sort函数的比较函数这么写: sort(people.begin(), people.end(), [](const vector<int>& u, const vector<int>& v) { return u[0] < v[0] || (u[0] == v[0] &

qq_38860340的博客 1072

CT探测器普遍采用“星形拓扑+多ADC模组”架构的TDC(时间数字转换器)设计方案

本文提出一种基于TDC反馈机制的CT探测器时钟同步方法,通过延时测量、偏差计算和动态补偿三步硬件流水线,实现高精度同步。系统采用Xilinx Kintex UltraScale FPGA内置CARRY8进位链构建3.5ps分辨率的TDC,结合多级比较器和延迟单元,形成闭环反馈控制。实验表明,在512通道、1.28m传输距离下,同步精度稳定在10ps以内,较传统方案提升两个数量级,并能动态补偿干扰抖动。该方案解决了传统方法在CT旋转腔体环境下精度不足的问题,为下一代超高清CT提供了有效的时钟同步解决方案。

whm128的博客 274

Android SurfaceFlinger——概述(一)

对于系统渲染流程的理解是指导 SurfaceFlinger 设计的核心思想,从 Android 4.1 一直到 Android 9.0 都没有太大的变化。只要抓住这五个核心思想,我们阅读 SurfaceFlinger 的难度就会下降不少。下面看一下 SurfaceFlinger 的体系和 Skia 以及 View的绘制流程的关系。framework 面向开发者所有的 View 是便于开发的控件,里面仅仅只是提供了当前 View 各种属性以及功能。

小旭的专栏 2584

【Java | LeetCode 406.根据身高重建队列】题解 & 思路

假设有打乱顺序的一群人站成一个队列,数组 people 表示队列中一些人的属性(不一定按顺序),根据身高重新构建队列。

茶色喵的博客 515

多智能体强化学习MATD3算法完整复现与分析

多智能体强化学习MATD3算法复现与分析摘要 MATD3算法是多智能体深度强化学习领域的重要进展,通过改进MADDPG算法,引入双Q学习、延迟策略更新和目标策略平滑等技术,显著提升了算法稳定性。本文完整复现了MATD3算法,详细解析了其数学原理,包括部分可观测马尔可夫博弈模型和TD3核心思想。在实现层面,设计了集中式Critic和分布式Actor的神经网络架构,采用PyTorch框架构建了Actor-Critic网络模块,包含精心设计的权重初始化和训练流程。该算法有效解决了多智能体环境中的非平稳性、信用分配

max500600的博客 527

Leetcode解题报告:406. Queue Reconstruction by Height

题意: Suppose you have a random list of people standing in a queue. Each person is described by a pair of integers (h, k), where h is the height of the person and k is the number of people in fro

wengyunpeng的博客 512

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

题解——Leetcode 406. Queue Reconstruction by Height 难度:Medium

Suppose you have a random list of people standing in a queue. Each person is described by a pair of integers (h, k), where h is the height of the person and k is the number of people in front of this

dxk3881345的博客 562

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

[leetcode] 406. Queue Reconstruction by Height

Suppose you have a random list of people standing in a queue. Each person is described by a pair of integers (h, k), where h is the height of the person and k is the number of people in front of t

TstsUgeg的博客 545

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

LeetCode#406 Queue Reconstruction by Height题解(C++版)

LeetCode#406 Queue Reconstruction by Height题解(C++版)

游笑天涯 811

Queue Reconstruction by Height

题目 Suppose you have a random list of people standing in a queue. Each person is described by a pair of integers (h, k), where h is the height of the person and k is the number of people in fr

gexlei的博客 452

406. Queue Reconstruction by Height

最后更新 二刷 15-Jan-2016 排座问题,记得以前是H难度的,现在改成M了。。 总结一句话,先按身高排,高的在前面;身高一样的情况下,K小的在前面。 BB半天说白了一句话,H大的在顶端,H一样的K小的在顶端。 根据这句话设立PQ的判断规则就行了。。 这样排的原因是因为出QUEUE的时候,后出的因为H小,不会影响前面的人。 而H一样的时候,虽然会影响前面同身高的,但是肯定K小的放前面,因为他...

weixin_30564785的博客 70

[LeetCode]406. Queue Reconstruction by Height 解题报告

Suppose you have a random list of people standing in a queue. Each person is described by a pair of integers (h, k), where h is the height of the person and k is the number of people in front of t

萌萌小七的专栏 507

Day29: 134. Gas Station, 135. Candy, 860. Lemonade Change, 406. Queue Reconstruction By Height

做题情况:这题之前做过,看了一下答案,还是蛮简单的。先处理从左到右的情况,再处理从右到左的情况,这样就能保证每一个胃口比两边孩子都大的孩子有更多的糖果。做题情况:好巧妙的解法,根本想不出来!把身高从大到小排序,然后直接按照身高顺位插入队列就行了,好厉害!但是我是用一个list来存储每种零钱的数量,其实只需要两个整数变量就行了。做题情况:没有思路,直接看了答案。贪心算法的题解都好巧妙啊,很难想到。题目难度:Medium。题目难度:Medium。

2401_83154344的博客 237

第六周(Greedy)

第六周(Greedy) 目录: 本周完成题目 主要过程思路 相关代码 感想与总结 一、本周完成题目 本周共完成2道题目,2道Medium。主要是针对于本周所学的贪心算法选择了一些题目进行练习。 具体完成题目及难度如下表: # Title Difficulty 55 Jump Game Medium 406 Queue R

lyc的博客 295

LeetCode第 406 题:根据身高重建队列(C++)

406. 根据身高重建队列 - 力扣(LeetCode) 看标签是贪心算法的思路,可是为啥贪心就合理呢?虽然是中等难度,可是想好久没想出为啥… 首先是先排序,按照第一个元素逆序,第二个元素正序,那么每一个元素之前的元素的个数,就是大于等于它的元素数量。个头高的人会忽略个头比它矮的人,只会在意个头大于等于它的人。 样例: [[7,0], [4,4], [7,1], [5,0], [6,1], [5,2]] 排序之后: [[7,0], [7,1], [6,1], [5,0], [5,2], [4,4]]

zj 950

406. 根据身高重建队列(力扣LeetCode)

排序完的people: [[7,0], [7,1], [6,1], [5,0], [5,2],[4,4]]因此 [[5,0],[7,0],[5,2],[6,1],[4,4],[7,1]] 是重新构造后的队列。输入:people = [[7,0],[4,4],[7,1],[5,0],[6,1],[5,2]]输入:people = [[6,0],[5,0],[4,0],[3,2],[2,2],[1,4]]插入[4,4]:[[5,0],[7,0],[5,2],[6,1],[4,4],[7,1]]

m0_73841621的博客 1389

Leetcode 406-根据身高重建队列

假设有打乱顺序的一群人站成一个队列,数组 people 表示队列中一些人的属性(不一定按顺序)。每个 people[i] = [hi, ki] 表示第 i 个人的身高为 hi ,前面 正好 有 ki 个身高大于或等于 hi 的人。 请你重新构造并返回输入数组 people 所表示的队列。返回的队列应该格式化为数组 queue ,其中 queue[j] = [hj, kj] 是队列中第 j 个人的属性(queue[0] 是排在队列前面的人)。 题解 题解转载自Trump 【排序预处理+贪心】 套路:一般这

Helene1996的博客 260

LeetCode 题解 | 406 号问题:根据身高重建队列

点击关注上方“五分钟学算法”,设为“置顶或星标”,第一时间送达干货。今天分享的题目来源于 LeetCode 第 406 号问题:根据身高重建队列。一、题目描述 假设有打乱顺序的一群人站...

程序员吴师兄的博客 1364
上一篇: 111. Minimum Depth of Binary Tree 二叉树的最小深度
下一篇: 如何让电脑共存JDK1.7 和JDK1.8
Viewz
博客等级 码龄9年 309粉丝 17原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值