Day30- 贪心算法part04

一、柠檬水找零

题目一:860. 柠檬水找零 

860. 柠檬水找零

在柠檬水摊上,每一杯柠檬水的售价为 5 美元。顾客排队购买你的产品,(按账单 bills 支付的顺序)一次购买一杯。

每位顾客只买一杯柠檬水,然后向你付 5 美元、10 美元或 20 美元。你必须给每个顾客正确找零,也就是说净交易是每位顾客向你支付 5 美元。

注意,一开始你手头没有任何零钱。

给你一个整数数组 bills ,其中 bills[i] 是第 i 位顾客付的账。如果你能给每位顾客正确找零,返回 true ,否则返回 false 。

  • 如果顾客支付 5 美元,不需要找零。
  • 如果顾客支付 10 美元,需要一张 5 美元纸币来找零。
  • 如果顾客支付 20 美元,优先使用一张 10 美元和一张 5 美元纸币来找零。如果没有 10 美元纸币,可以使用三张 5 美元纸币。
/** @lc app=leetcode.cn id=860 lang=cpp** [860] 柠檬水找零*/// @lc code=start
class Solution {
public:bool lemonadeChange(vector<int>& bills) {int five = 0, ten = 0;for (int bill : bills) {if (bill == 5) {five++;} else if (bill == 10) {if (five == 0) return false;five--;ten++;} else {if (five > 0 && ten > 0) {five--;ten--;} else if (five >= 3) {five -= 3;} else {return false;}}}return true;}
};
// @lc code=end

二、根据身高重建队列 

题目一:406. 根据身高重建队列

406. 根据身高重建队列

假设有打乱顺序的一群人站成一个队列,数组 people 表示队列中一些人的属性(不一定按顺序)。每个 people[i] = [hi, ki] 表示第 i 个人的身高为 hi ,前面 正好 有 ki 个身高大于或等于 hi 的人。

请你重新构造并返回输入数组 people 所表示的队列。返回的队列应该格式化为数组 queue ,其中 queue[j] = [hj, kj] 是队列中第 j 个人的属性(queue[0] 是排在队列前面的人)。

基本思路是先将人们按照身高从高到低排序,对于身高相同的人,则按照前面比他们高的人数(ki值)从小到大排序。然后,依次将这些人插入到结果队列中的指定位置。

/** @lc app=leetcode.cn id=406 lang=cpp** [406] 根据身高重建队列*/// @lc code=start
class Solution {
public:vector<vector<int>> reconstructQueue(vector<vector<int>>& people) {sort(people.begin(), people.end(), [](const vector<int>& a, const vector<int>& b) {return a[0] > b[0] || (a[0] == b[0] && a[1] < b[1]);});vector<vector<int>> result;for (auto& person : people) {result.insert(result.begin() + person[1], person);}return result;}
};
// @lc code=end

三、用最少数量的箭引爆气球

题目一:452. 用最少数量的箭引爆气球

452. 用最少数量的箭引爆气球

有一些球形气球贴在一堵用 XY 平面表示的墙面上。墙面上的气球记录在整数数组 points ,其中points[i] = [xstart, xend] 表示水平直径在 xstart 和 xend之间的气球。你不知道气球的确切 y 坐标。

一支弓箭可以沿着 x 轴从不同点 完全垂直 地射出。在坐标 x 处射出一支箭,若有一个气球的直径的开始和结束坐标为 xstartxend, 且满足  xstart ≤ x ≤ xend,则该气球会被 引爆 。可以射出的弓箭的数量 没有限制 。 弓箭一旦被射出之后,可以无限地前进。

给你一个数组 points ,返回引爆所有气球所必须射出的 最小 弓箭数 

基本思路是找出气球的重叠部分,并在这些重叠部分中射箭。如果一个箭可以击中多个气球,那么就不需要再射另外的箭来击中这些气球了。目标是最小化射出的箭的数量。

/** @lc app=leetcode.cn id=452 lang=cpp** [452] 用最少数量的箭引爆气球*/// @lc code=start
class Solution {
public:int findMinArrowShots(vector<vector<int>>& points) {if (points.empty()) {return 0;}sort(points.begin(), points.end(), [](const vector<int>& a, const vector<int>& b){return a[1] < b[1];});int arrows = 1;int end = points[0][1];for (const auto& point : points) {if (point[0] > end) {arrows++;end = point[1];}}return arrows;}
};
// @lc code=end

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/632083.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

android 自定义八边形进度条

自定义八边形动画效果图如下 绘制步骤&#xff1a; 1.先绘制橙色底部八边形实心 2.黑色画笔绘制第二层&#xff0c;让最外层显示一条线条宽度即可 3.再用黄色画笔绘制黄色部分 4.使用渐变画笔根据当前进度绘制覆盖黄色部分 5.使用黑色画笔根据当前进度绘制刻度条 6.黑色画笔绘制…

numpy darray 中是否存在某个 darray

在 A 中找到不等于 B 的数目 在一个 shape 为 (H,W,3) 的 numpy 数组中像素 不是 [255,255,255] 的数目。 代码如下&#xff1a; A [[[255,255,255], [1,2,3],[0,255,-1],[255,255,90],[255,255,255]],[[1,2,3],[0,255,-1],[255,255,90],[255,255,255], [255,255,255]]]A n…

使用Sqoop的并行处理:扩展数据传输

使用Sqoop的并行处理是在大数据环境中高效传输数据的关键。它可以显著减少数据传输的时间&#xff0c;并充分利用集群资源。本文将深入探讨Sqoop的并行处理能力&#xff0c;提供详细的示例代码&#xff0c;以帮助大家更全面地了解和应用这一技术。 Sqoop的并行处理 在开始介绍…

Java网络编程:概述--快速入门

I. 介绍 1.1 什么是网络编程 - 网络编程是指通过计算机网络实现程序之间的通信。在Java中&#xff0c;网络编程通常涉及到数据的传输、通信协议的使用以及与网络相关的各种操作。 1.2. 为什么学习Java网络编程 - Java网络编程是Java开发者重要的技能之一&#xff0c;因为它允许…

mybatis----小细节

1、起别名 在MyBatis中&#xff0c;<typeAliases>元素用于定义类型别名&#xff0c;它可以将Java类名映射为一个更简短的别名&#xff0c;这样在映射文件中可以直接使用别名而不需要完整的类名。 下面是一个示例&#xff1a; 在mybatis核心配置文件中配置typeAliases标…

SSH隧道技术

SSH隧道 简介 SSH隧道是一种通过SSH协议在两个网络节点之间建立安全通信的技术。它可以用于多种用途&#xff0c;包括加密和保护敏感数据传输、绕过防火墙限制、远程访问内部服务等。 应用&#xff1a; 端口转发&#xff1a;SSH隧道可以将本地端口转发到远程主机上&#xf…

合并K个升序链表(LeetCode 23)

文章目录 1.问题描述2.难度等级3.热门指数4.解题思路方法一&#xff1a;顺序合并方法二&#xff1a;分治合并方法三&#xff1a;使用优先队列合并 参考文献 1.问题描述 给你一个链表数组&#xff0c;每个链表都已经按升序排列。 请你将所有链表合并到一个升序链表中&#xff…

华为OD机试 - 运输时间(Java JS Python C)

题目描述 M(1 ≤ M ≤ 20)辆车需要在一条不能超车的单行道到达终点,起点到终点的距离为 N(1 ≤ N ≤ 400)。 速度快的车追上前车后,只能以前车的速度继续行驶,求最后一辆车到达目的地花费的时间。 注:每辆车固定间隔 1 小时出发,比如第一辆车 0 时出发,第二辆车 1 …

Python——基本语法(二)

一、while 循环 语法&#xff1a; while 条件表达式:条件表达示为真&#xff0c;就执⾏这⾥的代码&#xff0c;必须缩进 4 个空格多⾏代码保持缩进⼀致 条件表达式可以是: True # 布尔值的 True 1 < 10 # 凡是在 if 语句中使⽤的判断表达示&#xff0c;这⾥都可以使…

【Java实战项目】基于ssm的流浪动物领养系统网站

&#x1f64a;作者简介&#xff1a;多年一线开发工作经验&#xff0c;分享技术代码帮助学生学习&#xff0c;独立完成自己的项目或者毕业设计。 代码可以私聊博主获取。&#x1f339;赠送计算机毕业设计600个选题excel文件&#xff0c;帮助大学选题。赠送开题报告模板&#xff…

【音视频原理】图像相关概念 ② ( 帧率 | 常见帧率标准 | 码率 | 码率单位 )

文章目录 一、帧率1、帧率简介2、常见帧率标准3、帧率 刷新率 二、码率1、码率简介2、码率单位 一、帧率 1、帧率简介 帧率 Frame Rate , 帧 指的是 是 画面帧 , 帧率 是 画面帧 的 速率 ; 帧率 的 单位是 FPS , Frames Per Second , 是 每秒钟 的 画面帧 个数 ; 帧率 是 动画…

VR远程的实现

VR远程是一种使用虚拟现实&#xff08;VR&#xff09;技术进行远程操作的方法。通过VR设备&#xff0c;用户可以在虚拟环境中进行操作&#xff0c;并远程控制物理设备或机器人。 VR远程的实现通常需要以下几个步骤&#xff1a; 建立虚拟环境&#xff1a;使用VR技术创建一个与…

springboot 2.6.13 jdk 1.8版本 常用pom包 application.yml文件记录

<parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>2.6.13</version><relativePath/> <!-- lookup parent from repository --></parent> 数据…

漫漫数学之旅006

文章目录 经典格言数学习题古今评注名人小传 - 格洛里亚斯泰纳姆经典格言 数学上有才华的人没有在历史或英语上有才华的人那么多。——格洛里亚斯泰纳姆(Gloria Steinem) 数学习题 求阴影部分的面积。 古今评注 查尔斯巴贝奇,这位19世纪的英国数学家、发明家和机械工程…

相机内外参标定综合

相机内外参标定 内外参标定常用的工具相机成像原理内外参标定数学原理1&#xff09;求解内参矩阵与外参矩阵的积2&#xff09;求解内参矩阵3&#xff09;求解外参矩阵 内外参标定常用的工具 如图所示&#xff0c;棋盘格是很常见使用的标定工具 左下角写着棋盘格的参数&#xf…

Qt绘画的使用

1. 绘图 绘图组件&#xff1a; 1、绘画对象 2、绘画位置 3、绘画工具 4、绘画时机 绘画时机&#xff1a; 当整个窗口或窗口的一部分需要重新绘制时&#xff0c;会调用绘制事件处理函数 void QWidget::paintEvent(QPaintEvent *event) 绘画对象&#xff1a; QPainter类&#xff…

❤ vue的实际使用

❤ vue的实际使用 vue项目中video标签的动态路径使用方法及里面的坑 需求&#xff1a; 在详情展示的时候播放.mp4文件,然后动态改变这个视频的路径无法生效 原因&#xff1a; 使用video标签的时候,会在里面嵌套一个source标签 <video controls"controls" wi…

群晖Drive搭建云同步服务器结合内网穿透实现Obsidian笔记文件远程多端同步

文章目录 一、简介软件特色演示&#xff1a; 二、使用免费群晖虚拟机搭建群晖Synology Drive服务&#xff0c;实现局域网同步1 安装并设置Synology Drive套件2 局域网内同步文件测试 三、内网穿透群晖Synology Drive&#xff0c;实现异地多端同步Windows 安装 Cpolar步骤&#…

使用内网穿透解决电信无公网IP难题,神卓互联

事情经过 事情是这样的&#xff0c;由于客户的单位通了电信宽带&#xff0c;然后采购了我们的ERP系统安装在单位的服务器上&#xff0c;在单位的时候可以通过输入服务器的局域网Ip地址访问&#xff0c;也就是192.168.2.1xx这样的地址&#xff0c;访问确实没有问题&#xff0c;…

ARCGIS PRO SDK 地图图层单一符号化_____线图层

1、定义渲染器线符号&#xff1a; 1)、自定义线符号 Dim Linesymbol As CIMLineSymbol SymbolFactory.Instance.ConstructLineSymbol(ColorFactory.Instance.RedRGB,width ,SimpleLineStyle) width: 要构造的线条符号的宽度。 Simple…