代码随想录_贪心_leetcode 406 452
leetcode 406. 根据身高重建队列
406. 根据身高重建队列
假设有打乱顺序的一群人站成一个队列,数组 people 表示队列中一些人的属性(不一定按顺序)。每个 people[i] = [hi, ki] 表示第 i 个人的身高为 hi ,前面 正好 有 ki 个身高大于或等于 hi 的人。
请你重新构造并返回输入数组 people 所表示的队列。返回的队列应该格式化为数组 queue ,其中 queue[j] = [hj, kj] 是队列中第 j 个人的属性(queue[0] 是排在队列前面的人)。
示例 1:
输入:people = [[7,0],[4,4],[7,1],[5,0],[6,1],[5,2]] 输出:[[5,0],[7,0],[5,2],[6,1],[4,4],[7,1]] 解释: 编号为 0 的人身高为 5 ,没有身高更高或者相同的人排在他前面。 编号为 1 的人身高为 7 ,没有身高更高或者相同的人排在他前面。 编号为 2 的人身高为 5 ,有 2 个身高更高或者相同的人排在他前面,即编号为 0 和 1 的人。 编号为 3 的人身高为 6 ,有 1 个身高更高或者相同的人排在他前面,即编号为 1 的人。 编号为 4 的人身高为 4 ,有 4 个身高更高或者相同的人排在他前面,即编号为 0、1、2、3 的人。 编号为 5 的人身高为 7 ,有 1 个身高更高或者相同的人排在他前面,即编号为 1 的人。 因此 [[5,0],[7,0],[5,2],[6,1],[4,4],[7,1]] 是重新构造后的队列。示例 2:
输入:people = [[6,0],[5,0],[4,0],[3,2],[2,2],[1,4]] 输出:[[4,0],[5,0],[2,2],[3,2],[1,4],[6,0]]
代码
// leetcode 406. 根据身高重建队列
class Solution {
public:static bool cmp(const vector<int>& a, const vector<int>& b){if (a[0] == b[0]){return a[1] < b[1];}return a[0] > b[0];}vector<vector<int>> reconstructQueue(vector<vector<int>>& people) {sort(people.begin(), people.end(), cmp);vector<vector<int>> que; //使用链表来更好for (int i = 0; i < people.size(); ++i){int position = people[i][1];que.insert(que.begin() + position, people[i]);}return que;}
};
leetcode 452. 用最少数量的箭引爆气球
452. 用最少数量的箭引爆气球
有一些球形气球贴在一堵用 XY 平面表示的墙面上。墙面上的气球记录在整数数组 points ,其中points[i] = [xstart, xend] 表示水平直径在 xstart 和 xend之间的气球。你不知道气球的确切 y 坐标。
一支弓箭可以沿着 x 轴从不同点 完全垂直 地射出。在坐标 x 处射出一支箭,若有一个气球的直径的开始和结束坐标为 xstart,xend, 且满足 xstart ≤ x ≤ xend,则该气球会被 引爆 。可以射出的弓箭的数量 没有限制 。 弓箭一旦被射出之后,可以无限地前进。
给你一个数组 points ,返回引爆所有气球所必须射出的 最小 弓箭数 。
示例 1:
输入:points = [[10,16],[2,8],[1,6],[7,12]] 输出:2 解释:气球可以用2支箭来爆破: -在x = 6处射出箭,击破气球[2,8]和[1,6]。 -在x = 11处发射箭,击破气球[10,16]和[7,12]。示例 2:
输入:points = [[1,2],[3,4],[5,6],[7,8]] 输出:4 解释:每个气球需要射出一支箭,总共需要4支箭。示例 3:
输入:points = [[1,2],[2,3],[3,4],[4,5]] 输出:2 解释:气球可以用2支箭来爆破: - 在x = 2处发射箭,击破气球[1,2]和[2,3]。 - 在x = 4处射出箭,击破气球[3,4]和[4,5]。
代码
// leetcode 452. 用最少数量的箭引爆气球
class Solution {
public:static bool cmp(const vector<int>& a, const vector<int>& b){if (a[0] == b[0]){return a[1] < b[1];}return a[0] < b[0];}int findMinArrowShots(vector<vector<int>>& points) {sort(points.begin(), points.end(), cmp);int result = 1;for (int i = 1; i < points.size(); ++i){if (points[i][0] > points[i - 1][1]){result++;}else{points[i][1] = min(points[i - 1][1], points[i][1]);}}return result;}
};
相关文章:
代码随想录_贪心_leetcode 406 452
leetcode 406. 根据身高重建队列 406. 根据身高重建队列 假设有打乱顺序的一群人站成一个队列,数组 people 表示队列中一些人的属性(不一定按顺序)。每个 people[i] [hi, ki] 表示第 i 个人的身高为 hi ,前面 正好 有 ki 个身高…...
C++类的静态成员详解:成员函数非静态成员函数的非法调用
在C中,静态成员是属于整个类的而不是某个对象,静态成员变量只存储一份供所有对象共用。所以在所有对象中都可以共享它。使用静态成员变量实现多个对象之间的数据共享不会破坏隐藏的原则,保证了安全性还可以节省内存。 静态成员的定义或声明要…...
Qt之滑动条和进度条(QSlider、QProgressBar)
文章目录 前言一、QSliderQSlider的常用API信号与槽 二、QProgressBar滑动条和滚动条的常用API 总结 前言 在用户界面设计中,滑动条和进度条是常见的控件。Qt中提供了QProgressBar和QSlider两个类来实现滚动条和滑动条。 一、QSlider 在Qt中,QSlider是…...
Flutter之插件开发plugin
目的:适用于独立业务模块,或者与原生页面交互频繁的地方。 基于flutter3.x , IDE :androidStudio demo:https://download.csdn.net/download/SHTLoveXX/87751845 步骤: 1.新建flutter project 【New flutter project】. 2. 在新建工程面板记得切换 …...
asp.net基于web的音乐管理网站dzkf17A9程序
本系统主要包含了等系统用户管理、公告信息管理、音乐资讯管理、音乐类型管理多个功能模块。下面分别简单阐述一下这几个功能模块需求。 管理员的登录模块:管理员登录系统对本系统其他管理模块进行管理。 用户的登录模块:用户登录本系统,对个…...
itop-3568开发板驱动学习笔记(25)设备树(四)GPIO 实例分析
《【北京迅为】itop-3568开发板驱动开发指南.pdf》 学习笔记 文章目录 GPIO 控制器必要属性其他属性 指定 GPIO 引脚 和时钟类似,GPIO 在设备树中也存在两层定义,首先是 GPIO 控制器,这部分由芯片原厂工程师编写,相当于 GPIO 底层…...
函数(定义、返回值、调用、参数)
目录 ❤ 无参函数 ❤ 有参函数 ❤ 空函数 ❤ 什么是返回值? ❤ 为什么要有返回值? ❤ 什么是函数调用? ❤ 为何用调用函数? ❤ 函数调用的三种形式 ❤ 形参和实参 形参 实参 ❤ 位置参数 位置形参 位置实…...
28. Kubernetes 核心组件讲解——API Server
本章讲解知识点 Kubernetes API Server 概述etcd 简介API Server 架构解析API Server 的 List-Watch 机制独特的 Kubernetes Proxy API 接口集群功能模板之间的通信1. Kubernetes API Server 概述 1.1 基本概念 Kubernetes API Server(API Server)是 Kubernetes 的核心组件…...
springboot框架开发医院云HIS 住院医生站、住院护士站功能实现
住院医生站主模块:包括医嘱管理、病案首页、分配入科、住院清单、我的质控等子模块 (1)医嘱管理功能简介 ①住院患者开立医嘱、支持医嘱复制、停止、作废等操作; ②医嘱类型含药品、项目、材料、嘱托; ③支持住院各…...
高性能定时器介绍及代码逐行解析--时间堆
简介 在《Linux高性能服务器编程》中,介绍了三种定时方法: socket选项SO_RCVTIMEO和SO_SNDTIMEOSIGALRM信号I/O复用系统调用的超时参数 基础知识 非活跃,是指客户端(这里是浏览器)与服务器端建立连接后,…...
汇编语言学习笔记五
div指令 除法, 被除数:默认是放在ax或者dx中,其位数为16位,则在ax中,如位数为32位,则高位在dx中,低位在ax中 除数:放在寄存器或者内存单元中,有8位和16位两种。 结果&am…...
Linux下的epf 是什么?
EPF (Extended Page Frame) 是 Linux 内核中的一个功能,它用于管理大内存系统中的物理页框。具体来说,当系统中的物理内存超过 1TB 时,传统的页表结构会变得非常庞大和复杂,给内存管理带来很大的困难。 EPF 架构通过将物理地址分…...
如何在广告形式选择上化解用户厌恶和变现瓶颈?
用户讨厌广告,这似乎是一个共识。在日复一日的使用中,用户会遇到各种各样的广告形式,从搜索结果中的广告链接,到视频中不间断的广告,再到流行应用中的推广内容。 无处不在的广告已经让用户不胜其烦,这也…...
【Android入门到项目实战-- 9.2】—— 传感器实战使用教程(靠近黑屏和计步器)
上篇文章介绍了传感器的基础用法(如有需要,可先移步),下面将通过两个实战案例学习具体如何使用。 一、靠近黑屏 这是距离传感器的简单应用。 –检测手机是否贴在耳朵上正在打电话,以便自动熄灭屏幕达到省电的目的。也…...
软件项目生命周期模型
目录 瀑布模型 快速原型模型 敏捷模型 迭代模型(增量模型) 螺旋模型 瀑布模型 定义:早就计划好了,按计划顺序(计划、设计、开发、测试、维护)线性执行 适用于:需求明确、变化少的项目 缺…...
linux系统TP-ti,tsc2046外设调试
一、整体调试思路 tp外设属于比较常见且比较简单的外设,今天以ti,tsc2046这款为例简述下tp外设的调试。 整体思路 1、配置设备树----驱动调试的device部分 2、tp驱动编译及匹配—driver部分 3、驱动整体调试 二、配置设备树 对于ti,tsc2046我们可以参考内核Docum…...
ChatGPT指令大全
1. 写报告:我现在正在 [报告的情境与目的]。我的简报主题是 [主题],请提供 [数字] 种开头方式,要简单到 [目标族群] 能听懂,同时要足够能吸引人,让他们愿意专心听下去。 2. 研究报告:写出一篇有关 [知识] …...
【Vue面试题】Vue2.x生命周期?
文章目录 1.有哪些生命周期(系统自带)?beforeCreate( 创建前 )created ( 创建后)beforeMount (挂载前)mount (挂载后)beforeUpdate (更新前)updated (更新后)beforeDestroy(销毁前)destroy(销毁后…...
运算放大器 - 笔记 02 -恒流源
恒流源 / 电流源 一、方案一二、方案二三、方案三四、方案四 前言:最近在学习运放,三极管,二极管,场效应管等器件的组合电路。捡起了以前的模电知识,写下笔记,以防再度忘记。 本文使用Multisim仿真软件进行…...
Python:Python进阶:Python字符串驻留技术
Python字符串驻留技术 1.什么是字符串驻留2. 为什么要驻留字符串3. Python的字符串驻留4. Python 字符驻留原理4.1 如何驻留字符串4.2 如何清理驻留的字符串 5. 字符串驻留的实现5.1. 变量、常量与函数名5.2 字典的键5.3 任何对象的属性5.4 显式地驻留 6 字符串驻留的其他发现 …...
ROFL-Player:英雄联盟回放播放终极解决方案
ROFL-Player:英雄联盟回放播放终极解决方案 【免费下载链接】ROFL-Player (No longer supported) One stop shop utility for viewing League of Legends replays! 项目地址: https://gitcode.com/gh_mirrors/ro/ROFL-Player 如果你是一名英雄联盟玩家&#…...
负载均衡器类型与配置
硬件负载均衡器硬件负载均衡器通常由专用设备提供,例如F5 BIG-IP、Citrix ADC等。这些设备提供高性能和稳定性,适合大型企业和高流量场景。软件负载均衡器软件负载均衡器包括Nginx、LVS、HAProxy、Kong和SLB等。它们分为L7层和L4层负载均衡器。L7层负载均…...
ATF IronPython集成:如何在C应用中嵌入Python脚本引擎的完整指南
ATF IronPython集成:如何在C#应用中嵌入Python脚本引擎的完整指南 【免费下载链接】ATF Authoring Tools Framework (ATF) is a set of C#/.NET components for making tools on Windows. ATF has been in continuous development in Sony Computer Entertainments …...
CANN/Ascend C逻辑异或API文档
LogicalXor 【免费下载链接】asc-devkit 本项目是CANN 推出的昇腾AI处理器专用的算子程序开发语言,原生支持C和C标准规范,主要由类库和语言扩展层构成,提供多层级API,满足多维场景算子开发诉求。 项目地址: https://gitcode.com…...
精读双模态检测论文二十六|DefDeN(兰州大学)创新点拉满!门控融合+可变形去噪+对比学习,LiDAR-Camera 3D检测暴力涨点!!!
🔥 本文定位:CSDN 原创干货 | 兰州大学/卧龙岗大学 LiDAR-Camera 3D目标检测 SOTA 方案 🎯 核心收益:一次性解决注意力融合三大痛点——收敛慢、计算量大、误检率高!基于门控多模态融合单元(GMFU࿰…...
联发科2012年崛起:从功能机到智能机的转型与挑战
1. 从功能机到智能机的惊险一跃:联发科的2012年2012年,对于全球移动芯片行业来说,是几家欢喜几家愁的一年。诺基亚和黑莓的持续衰落,直接拖垮了像ST-Ericsson这样深度绑定的芯片供应商;即便是巨头如高通,也…...
Blender 3MF插件:5分钟掌握3D打印文件格式转换的完整方案
Blender 3MF插件:5分钟掌握3D打印文件格式转换的完整方案 【免费下载链接】Blender3mfFormat Blender add-on to import/export 3MF files 项目地址: https://gitcode.com/gh_mirrors/bl/Blender3mfFormat 你是否曾经在Blender中精心设计了完美的3D模型&…...
让老旧游戏手柄重获新生:XOutput游戏手柄兼容工具使用指南
让老旧游戏手柄重获新生:XOutput游戏手柄兼容工具使用指南 【免费下载链接】XOutput DirectInput to XInput wrapper 项目地址: https://gitcode.com/gh_mirrors/xo/XOutput 还在为心爱的老手柄无法玩新游戏而烦恼吗?XOutput是一款专门解决Direct…...
[Deep Agents:LangChain的Agent Harness-07]利用PatchToolCallsMiddleware修复错乱的消息结构
作为LLM提示词的一个重要组成部分,表示对话历史的消息列表在结构上有一个基本的要求:如果LLM返回的AIMessage包含ToolCall对象,那么Agent会期望每个ToolCall对象都有对应的ToolMessage。但是Agent在执行过程会因为一些异常导致LLM返回的AIMes…...
【大模型缓存优化终极指南】:SITS大会首发3大工业级缓存策略+实测QPS提升270%的落地代码
更多请点击: https://intelliparadigm.com 第一章:大模型缓存策略优化:SITS大会 缓存瓶颈与SITS大会共识 在2024年上海智能技术峰会(SITS)上,来自Meta、阿里达摩院与清华智谱的联合工作组首次公开了大语言…...
