算法:柠檬水找零

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

目录

前言

一、问题描述

二、解法分析

总结


前言

提示:这里可以添加本文要记录的大概内容:

例如:随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学习的基础内容。


提示:以下是本篇文章正文内容,下面案例可供参考

一、问题描述

在柠檬水摊上,每一杯柠檬水的售价为5美元。
顾客排队购买你的产品,(按账单bills支付的顺序)一次购买一杯。
每位顾客只买一杯柠檬水,然后向你付5美元、10美元或20美元。你必须给每个顾客正确找零,也就是说净交易是每位顾客向你支付5美元。

输入:[5,5,5,10,20]
输出:true
解释:
前 3 位顾客那里,我们按顺序收取 3 张 5 美元的钞票。
第 4 位顾客那里,我们收取一张 10 美元的钞票,并返还 5 美元。
第 5 位顾客那里,我们找还一张 10 美元的钞票和一张 5 美元的钞票。
由于所有客户都得到了正确的找零,所以我们输出 true。

输入:[5,5,10]
输出:true

输入:[10,10]
输出:false

输入:[5,5,10,10,20]
输出:false
解释:
前 2 位顾客那里,我们按顺序收取 2 张 5 美元的钞票。
对于接下来的 2 位顾客,我们收取一张 10 美元的钞票,然后返还 5 美元。
对于最后一位顾客,我们无法退回 15 美元,因为我们现在只有两张 10 美元的钞票。
由于不是每位顾客都得到了正确的找零,所以答案是 false。

二、解法分析

解题思路:

当遇到5时,直接收下

当遇到10时,需要收下,并支出一个5

当遇到20时,需要收下,并支出10+5或者5+5+5

那么整个过程中,需要关注的就是10和5的已经收下的数量

需要两个计数器,分别记录当前有几个5,几个10

收入就意味着计数器+1,支出就意味着计数器-1,当收下的面额是20且10的数量是0是,支出的5的数量一次是3,这个要注意。

代码示例:

public void 找零test() {int[] a = {5,5,10,10,20};// a5: 记录已收下的5的数量, 初始值为0; a10同理int a5 = 0, a10 = 0;// 如果首个元素比5大, 则第一个就找不开if (a[0] > 5) {System.out.println(false);return;}for (int i : a) {// 此处是当循环没有结束时, 对上一轮过后结果进行判断, 如果5或者10透支了, 则判定为失败if (a5 < 0 || a10 < 0) {System.out.println(false);return;}// 当本次要收下的是5时, a5计数器+1, 继续下一轮if (i == 5) {a5++;continue;}// 当本次要收下的是10时, a5计数器-1, a10计数器+1, 继续下一轮if (i == 10) {a5--;a10++;continue;}// 当本次要收下的是20且已收下的10大于等于1张, 优先支出1张10, a10计数器-1, a5计数器-1, 继续下一轮if (a10 > 0) {a10--;a5--;continue;}// 当本次要收下的是20且已收下的10小于1张, 支出3张5, 继续下一轮a5 = a5 - 3;}// 此处用来对最后一轮过后, 是否透支10或者5进行校验, 任何一个透支则为失败if (a5 < 0 || a10 < 0) {System.out.println(false);return;}// 没有被以上任何一种失败的命中, 则最终成功System.out.println(true);
}


总结

没啥难度,简单到有手就行!

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

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

相关文章

【STM32】软件SPI读写W25Q64芯片

目录 W25Q64模块 W25Q64芯片简介 硬件电路 W25Q64框图 Flash操作注意事项 状态寄存器 ​编辑 指令集 INSTRUCTIONS​编辑 ​编辑 SPI读写W25Q64代码 硬件接线图 MySPI.c MySPI.h W25Q64 W25Q64.c W25Q64.h main.c 测试 SPI通信&#xff08;W25Q64芯片简介&am…

关于CDN

CDN&#xff08;内容分发网络&#xff09;是一种分布式的服务器系统&#xff0c;旨在有效地提供互联网上的内容&#xff0c;特别是静态资源&#xff0c;如图片、样式表、脚本文件等。CDN的主要目标是提高网站的性能、降低加载时间&#xff0c;并减轻原始服务器的负载。 CDN的工…

12-输入/输出项目构建命令行程序

上一篇&#xff1a; 11-编写自动化测试 本章是对迄今为止所学到的许多技能的回顾&#xff0c;也是对一些标准库特性的探索。我们将创建一个与文件和命令行输入/输出交互的命令行工具&#xff0c;以练习你现在掌握的一些 Rust 概念。 Rust 的速度、安全性、单一二进制输出和跨平…

说说对BOM的理解(常见的BOM对象了解哪些)

文章目录 一、是什么二、window三、location四、navigator五、screen六、history 一、是什么 BOM (Browser Object Model)&#xff0c;浏览器对象模型&#xff0c;提供了独立于内容与浏览器窗口进行交互的对象 其作用就是跟浏览器做一些交互效果,比如如何进行页面的后退&…

四川盐亭清代古寨重现,文物建筑保护引关注

近日&#xff0c;在四川盐亭的五台山深处&#xff0c;一处历经160余年风霜的古山寨遗迹重现天日。寨门巍峨&#xff0c;文字斑驳&#xff0c;诉说着清代同治年间的历史沧桑。然而&#xff0c;岁月侵蚀下&#xff0c;文物保护刻不容缓。温湿度波动等自然因素&#xff0c;对这些珍…

森林气象火险监测站

TH-SL10在广袤无垠的森林中&#xff0c;每一片树叶、每一缕风都蕴含着大自然的秘密。而在这片生机勃勃的绿色世界里&#xff0c;森林气象火险监测站就像是守护宝藏的“千里眼”和“顺风耳”&#xff0c;时刻警惕着潜在的危险。 一、森林气象火险监测站&#xff1a;实时监测的“…

生成式 AI - Diffusion 模型的数学原理(3)

来自 论文《 Denoising Diffusion Probabilistic Model》&#xff08;DDPM&#xff09; 论文链接&#xff1a; https://arxiv.org/abs/2006.11239 Hung-yi Lee 课件整理 文章目录 一、图像生成模型本质上的共同目标二、最大似然估计三、和VAE的关联四、概率计算 一、图像生成模…

GC9008 12V 全桥驱动芯片,可替代TMI8118,应用于摄像机、消费类产品上

GC9008 是一款 12V 全桥驱动芯片&#xff0c;为提供高性价比的方案。它能提供 0.1A 的持续输出电流。可以工作在 4.5~15V 的电源电压上。 具有 PWM&#xff08;IN1/IN2&#xff09;输入接口,与行业标准器件兼容.是 SOP8封装&#xff0c;GC9008D是DIP封装 芯片特点 ● H 桥电机…

计算机服务器中了_locked勒索病毒怎么办?Encrypted勒索病毒解密数据恢复

随着网络技术的不断发展&#xff0c;数字化办公已经成为企业生产运营的根本&#xff0c;对于企业来说&#xff0c;数据至关重要&#xff0c;但网络威胁无处不在&#xff0c;近期&#xff0c;云天数据恢复中心接到很多企业的求助&#xff0c;企业的计算机服务器遭到了_locked勒索…

Python 基于 AI 动物识别技术的研究与实现,附源码

博主介绍&#xff1a;✌程序员徐师兄、7年大厂程序员经历。全网粉丝30W、csdn博客专家、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ &#x1f345;文末获取源码联系&#x1f345; &#x1f447;&#x1f3fb; 精彩专栏推荐订阅&#x1f447;…

OpenAI 新模型 SORA 现在可以让你根据文本提示创建视频

OpenAI 周四宣布&#xff0c;它已经扩展到文本和图像之外&#xff0c;首次提供视频生成人工智能。 这种名为 Sora 的新模型允许用户输入所需的场景并将其转换为高清视频剪辑。 人工智能生成的视频给担心错误信息的平台带来了另一个障碍&#xff0c;尤其是在今年全球各地安排重…

【JavaScript】深浅拷贝

JavaScript中复制对象有深拷贝和浅拷贝两种方式 浅拷贝:浅拷贝只复制对象的第一层属性,而不复制嵌套对象的引用。这意味着如果原始对象包含嵌套对象,浅拷贝后的对象仍然会共享这些嵌套对象的引用。可以使用`Object.assign()`或展开运算符(`...`)来进行浅拷贝。 // 浅拷贝示…

图神经网络DGL框架,graph classification,多个且不同维度的node feature 训练

node feature 维度不同 我现在有许多不同的图要加入训练&#xff0c;每个图的节点特征维度不同&#xff0c;第一张图n_weight特征有10条数据&#xff0c;第二张图n_weight特征有15条数据&#xff0c;但是训练的时候&#xff0c;需要维度都对其&#xff0c;所以直接做0 padding…

迁移SVN和GIT的云端数据

在新服务器搭建GIT仓库 教程很多&#xff0c;大致的流程是&#xff1a; 1. 新建linux用户密码专用于git操作 2. 新建git库的存放文件夹并在此初始化git 3. 配置git库所在目录权限 *只需要有一个库和有一个用户&#xff0c;与在windows上建库是一样的。不需要搭建类似gitla…

stable diffusion webui学习总结(2):技巧汇总

一、脸部修复&#xff1a;解决在低分辨率下&#xff0c;脸部生成异常的问题 勾选ADetailer&#xff0c;会在生成图片后&#xff0c;用更高的分辨率&#xff0c;对于脸部重新生成一遍 二、高清放大&#xff1a;低分辨率照片提升到高分辨率&#xff0c;并丰富内容细节 1、先通过…

人力资源智能化管理项目(day10:首页开发以及上线部署)

学习源码可以看我的个人前端学习笔记 (github.com):qdxzw/humanResourceIntelligentManagementProject 首页-基本结构和数字滚动 安装插件 npm i vue-count-to <template><div class"dashboard"><div class"container"><!-- 左侧内…

MyBatis--08--分页插件PageHelper

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 1.分页插件PageHelper1.1 mysql中 limit 关键字含义1.2 PageHelper 官网https://github.com/pagehelper/Mybatis-PageHelper/blob/master/wikis/zh/HowToUse.md](ht…

代码随想录算法训练营day34| 860. 柠檬水找零、406. 根据身高重建队列、452. 用最少数量的箭引爆气球

860、柠檬水找零&#xff1a; class Solution(object):def lemonadeChange(self, bills):""":type bills: List[int]:rtype: bool"""five, ten 0, 0for i in range(len(bills)):if bills[i] 5:five 1elif bills[i] 10:if five 0:return Fa…

中国社科院与英国斯特灵大学创新与领导力博士—应该怎样选专业

现如今其实有很多人感觉只是平台成就自己&#xff0c;离开平台自己并无一技之长或过人之处。但是又不想如此安稳过日&#xff0c;一直终老。所以现在大多数人都会去想在职读个博士。 基本上都是在职博士专业为那些希望边工作边获得博士学位的在在职人员开设的&#xff0c;那么&…

uni-app使用uView打开弹出层后输入框聚焦时placeholder错位问题

这里就不放效果了&#xff0c;大概意思就是在使用uView的popus时&#xff0c;在底部弹出后&#xff0c;如果弹窗中的输入框会造成一瞬间的placeholder文字错位&#xff0c;这个问题的主要是因为uView安全区适配导致 uView相关文档 https://www.uviewui.com/components/safeAr…