代码随想录算法训练营|day34

第八章 贪心算法

  • 860.柠檬水找零
  • 406.根据身高重建队列
  • 452.用最少数量的箭引爆气球
  • 代码随想录文章详解

860.柠檬水找零

定义five,ten为顾客付5元和10元的张数,找零时首先找较大面额,分情况讨论:
如果顾客付5元,直接five++
如果顾客付10元,自己至少有一张5元,five–,ten++;否则返回false
如果顾客付20元,自己至少有一张5元和一张10元,five–,ten–;或者自己至少有3张5元,five-=3;否则返回false

func lemonadeChange(bills []int) bool {five, ten := 0, 0for i := 0; i < len(bills); i++ {if bills[i] == 5 {five++} else if bills[i] == 10 {if five > 0 {ten++five--} else {return false}} else {if ten > 0 && five > 0 {ten--five--} else if five > 2 {five -= 3} else {return false}}}return true
}

406.根据身高重建队列

先对数组中数对的第一个元素降序排序,然后对数对的第二个元素插入升序排序

func reconstructQueue(people [][]int) [][]int {// 1.高个子对矮个子没影响,先降序排序sort.Slice(people, func(i, j int) bool {// 身高相同时,序号小在前if people[i][0] == people[j][0] {return people[i][1] < people[j][1]}return people[i][0] > people[j][0]})// 2.然后把矮个子插入对应位置person[i][1]即可res := make([][]int, len(people))for i := 0; i < len(people); i++ {if len(res) <= people[i][1] {res = append(res, people[i])} else {// 在指定位置插入元素index := people[i][1]copy(res[index+1:], res[index:])res[index] = people[i]}}return res
}

原地排序

for index, person := range people {copy(people[person[1]+1:index+1], people[person[1]:index+1])people[person[1]] = person
}

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

贪心:对气球右边界排序,初始时最大右边界为points[0][1],后续遍历的气球右边界都比初始值大,只要保证气球左边界小于maxRight就能被箭射穿,否则更新最大右边界,箭个数++

func findMinArrowShots(points [][]int) int {sort.Slice(points, func(i, j int) bool {return points[i][1] < points[j][1]})res := 1maxRight := points[0][1]for i := 1; i < len(points); i++ {if points[i][0] <= maxRight {continue}maxRight = points[i][1]res++}return res
}

代码随想录文章详解

860.柠檬水找零
406.根据身高重建队列
452.用最少数量的箭引爆气球

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

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

相关文章

Python urllib模块学习

HTTP协议 HTTP 协议&#xff1a;一般指HTTP(超文本传输)协议。 HTTP是为Web浏览器和Web服务器之间的通信而设计的&#xff0c;基于TCP/IP通信协议嘞传递数据。 HTTP消息结构 客户端请求消息 客户端发送一个HTTP请求到服务器的请求消息包括以下格式 请求行(request line)请求…

Vue3 (父子组件传参)

父组件通过v-bind&#xff08;简写 :&#xff09;绑定一个数据&#xff0c;然后子组件通过defineProps接受传过来的值。 给Menu组件 传递了一个title 字符串类型是不需要v-bind <template><div class"layout"><Menu title"我是标题">…

Nginx被动健康检测配置

我使用 Nginx 做负载均衡&#xff0c;有时候可能某一台服务器可能会临时出问题&#xff0c;无法访问。这个时候就需要检测服务器是否有问题&#xff0c;这里的检测方式有两种&#xff1a; 1、被动健康检测 就是会判断请求在规定时间内是否报错&#xff0c;如果连续报错多少次…

mysql 2-20

TEXT类型 枚举类型 SET类型 二进制字符串类型 BLOB类型 注意事项 JSON类型 提取数据 空间类型 选择建议 约束

HQYJ 2024-2-21 作业

复习课上内容&#xff08;已完成&#xff09;结构体字节对齐&#xff0c;64位没做完的做完&#xff0c;32位重新都做一遍&#xff0c;课上指定2字节对齐的做一遍&#xff0c;自己验证&#xff08;已完成&#xff09;两种验证大小端对齐的代码写一遍复习指针内容&#xff08;已完…

如何通过本地消息表实现分布式事务?

本地消息表步骤 通过本地消息表&#xff08;也称为可靠消息表&#xff09;实现分布式事务是一种常见的做法&#xff0c;用于保证在分布式环境中消息的可靠传递和事务的一致性。以下是使用本地消息表实现分布式事务的一般步骤&#xff1a; 消息生产方&#xff08;也就是发起方&…

leetcode hot100-1

给定一个整数数组 nums 和一个整数目标值 target&#xff0c;请你在该数组中找出 和为目标值 target 的那 两个 整数&#xff0c;并返回它们的数组下标。 你可以假设每种输入只会对应一个答案。但是&#xff0c;数组中同一个元素在答案里不能重复出现。 你可以按任意顺序返回…

OpenMVS+Colmap安装

(在home目录下新建一个文件夹library(我给你建好了,解压就行),用来安装各种库文件) 先换源(国外的不用换源) 备份 sudo cp /etc/apt/sources.list /etc/apt/sourses.list_bk修改源 sudo gedit /etc/apt/sources.list将原所有内容删除,添加以下内容: deb http://m…

力扣724. 寻找数组的中心下标(前后缀和)

Problem: 724. 寻找数组的中心下标 文章目录 题目描述思路及解法复杂度Code 题目描述 思路及解法 分别求取nums数组的前、后缀和&#xff08;不包括当前元素&#xff09;&#xff0c;并比较当某个位置的前后缀和相等时&#xff0c;返回该位置&#xff1b; 复杂度 时间复杂度: …

电脑进水无法开机怎么办 电脑进水开不了机的解决方法

意外总是会不定时打破你的计划&#xff0c;电脑这类电器最怕遇到的除了火还有水&#xff0c;设备进水会导致数据丢失&#xff0c;那么我们遇到电脑进水怎么办&#xff1f;进水之后不正确处理也会引起很多不必要的麻烦. 解决办法 第一步&#xff1a;关机 如果您的电脑是在开…

软件测试面试常见问题【含答案】

一、面试技巧题(主观题) 序号面试题1怎么能在技术没有那么合格的前提下给面试官留个好印象&#xff1f;2面试时&#xff0c;如何巧妙地避开不会的问题&#xff1f;面试遇到自己不会的问题如何机智的接话&#xff0c;化被动为主动&#xff1f;3对于了解程度的技能&#xff0c;被…

char型变量中能不能存储一个中文汉字,为什么?(企业真题)

char型变量中能不能存储一个中文汉字&#xff0c;为什么&#xff1f; 可以的。char c1 ‘中’; char c2 ‘a’。 因为char使用的是unicode字符集&#xff0c;包含了世界范围的所有的字符。

软考33-上午题-【知识产权】-计算机软件的商业秘密权

一、商业秘密的定义 不为公众所知悉的&#xff0c;能为权利人带来经济利益、具有实用性并经权利人采取保密措施的技术信息和经营信息。 技术信息和经营信息是商业秘密的基本内容。 二、真题 真题1&#xff1a; 真题2&#xff1a; 申请专利、注册商标。 软件著作权&#xff0…

回归分析中的异方差性

在简单线性回归或多元线性回归中&#xff0c;我们对误差项做了一些基本假设。 简单线性回归&#xff1a; 多元线性回归&#xff1a; 假设条件&#xff1a; 1.误差均值为零 2.误差具有恒定方差 3.误差不相关 4.误差呈正态分布 第2个假设称为同方差性&#xff0c;因此&…

行李电子秤解决方案

在生活中&#xff0c;买菜时常常出现缺斤少两的情况&#xff0c;这种情况多是商家秤有很大问题&#xff0c;往往消费者是最吃亏的&#xff0c;这种情况下&#xff0c;我们最好是带个吊钩电子秤&#xff0c;测量菜的重量&#xff0c;有问题直接拨打举报电话举报商家&#xff0c;…

py2neo和neo4j

py2neo 和 neo4j 是两个 Python 中与 Neo4j 图数据库交互的库&#xff0c;但它们有不同的设计和使用方式。 py2neo: 类型: py2neo 是一个面向对象的库&#xff0c;提供了一个对象模型&#xff0c;使得与 Neo4j 数据库的交互更加 Pythonic。API 风格: 使用 Node 和 Relationship…

基于SSM实现的人事管理系统(源代码+数据库脚本)

文章目录 系统介绍技术选型成果展示账号地址及其他说明源码获取 系统介绍 系统演示 微信视频号&#xff1a;【全栈小白】查看视频 基于SSM实现的人事管理系统使用JavaEE开发&#xff0c;基于SpringMVCMybatis框架&#xff0c;该项目包含了用户管理、部门管理、职位管理、员工…

拯救者Legion Y9000K 2021H(82K6)原厂oem预装Win11系统镜像

lenovo联想拯救者Y9000K(82K6)原装出厂Windows11系统安装包下载&#xff0c;恢复出厂开箱状态 链接&#xff1a;https://pan.baidu.com/s/1DGWU7gctJerff6LJrgHD5w?pwdrbs5 提取码&#xff1a;rbs5 原装出厂系统自带所有驱动、出厂主题壁纸、系统属性联机支持标志、Office…

Linux桌面

系统信息的截图 登录界面右下角可以切换 Ubuntu on Wayland &#xff0c;虽然还是测试版&#xff0c;不过体验已经比之前的 Xorg 好多了&#xff0c;最笔记本上使用最影响体验的高分屏适配功能&#xff0c;在 wayland 中也是几乎完美支持的。 卸载 snap 这个 snap 是 Ubuntu …

WEB 3D技术 three.js 3D贺卡(4) 添加鼠标滚轮移动屏幕 改变贺卡文字功能

好&#xff0c;上文 WEB 3D技术 three.js 3D贺卡(3) 点光源灯光动画效果 那么 我们来做一下 鼠标滚动相机和滚动时不同文字的切换 首先 我们要设置多个场景 其实也不能完全叫场景 也可以说多个位置 反正简单说就是多个位置 展现多个场景 我们先在代码的最下面 加上一个对象数…