​LeetCode解法汇总860. 柠檬水找零

news2024/5/18 11:53:40

目录链接:

力扣编程题-解法汇总_分享+记录-CSDN博客

GitHub同步刷题项目:

https://github.com/September26/java-algorithms

原题链接:力扣


描述:

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

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

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

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

示例 1:

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

示例 2:

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

提示:

  • 1 <= bills.length <= 105
  • bills[i] 不是 5 就是 10 或是 20 

解题思路:

 

代码:

class Solution {
public:
    bool lemonadeChange(vector<int> &bills)
    {
        int num5 = 0;
        int num10 = 0;
        for (int i = 0; i < bills.size(); i++)
        {
            int bill = bills[i];
            if (bill == 5)
            {
                num5++;
            }
            else if (bill == 10)
            {
                num5--;
                num10++;
            }
            else if (bill == 20)
            {
                if (num10 == 0)
                {
                    num5 = num5 - 3;
                }
                else
                {
                    num5--;
                    num10--;
                }
            }
            if (num10 < 0 || num5 < 0)
            {
                return false;
            }
        }
        return true;
    }
};

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

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

相关文章

免费数据恢复方法?这3个不要错过!

朋友们&#xff01;本人是个超级马虎的职场新手&#xff0c;在处理工作的时候总是容易误删重要的报表&#xff01;要知道我光是做一个报表就要花很长时间。大家有什么免费数据恢复的方法给我推荐推荐吗&#xff1f;感谢&#xff01;” 在使用电脑时&#xff0c;我们会在电脑中保…

性能测试工具 Jmeter 引入 jar 包踩过的坑

目录 前言&#xff1a; Jmeter 中调用自己编写 jar 中的类出错 错误日志&#xff1a; 出现以上错误的原因&#xff1a; 解决方法&#xff1a; 前言&#xff1a; JMeter 是一种开源的性能测试工具&#xff0c;可以帮助我们快速地进行网站、应用程序等的性能测试和压力测试…

SSM企业固定资产智能管理系统的设计与实现【纯干货分享,M免费领取源码06298】

摘要 信息化社会内需要与之针对性的信息获取途径&#xff0c;但是途径的扩展基本上为人们所努力的方向&#xff0c;由于站在的角度存在偏差&#xff0c;人们经常能够获得不同类型信息&#xff0c;这也是技术最为难以攻克的课题。针对企业固定资产智能管理系统等问题&#xff0c…

计算机系统结构-多处理机

概念&#xff0c;多处理机指的是&#xff0c;多台含cpu的机器共享一个存储器。 &#xff08;可以通过网络宽带&#xff0c;也可以通过线直连这个存储器。当然他们也可以有自己的私有存储器或者高速缓存&#xff09; 几个cpu公用一个总线&#xff0c;没问题。但是如果十几个cpu…

系统学习Linux-MySQL语句(二)

一、SQL语句类型 DDLDDL&#xff08;Data Definition Language&#xff0c;数据定义语言&#xff09;&#xff1a;用于定义数据库中的各种对象&#xff0c;包括数据库、表、视图、触发器等&#xff0c;常见的 DDL 命令有 CREATE、ALTER、DROPDMLDML&#xff08;Data Manipulat…

YOLOv1论文细节总结(confidence)

总结几个细节点&#xff1a; 1、置信度计算&#xff1a; 训练时&#xff1a; 测试时置信度&#xff0c;这里网络输出仍然是 以上是各大博文讲解时列出的也是论文中提到的公式&#xff0c;但其实最清楚的是下面这段文字讲出的&#xff1a; 说白了&#xff1a; 网络输出三个…

深圳国际新能源及智能网联汽车全产业博览会今年10月举办

7月25日&#xff0c;深圳市工业和信息化局与励展博览集团共同在深圳举办Automotive World China 2023深圳国际新能源及智能网联汽车全产业博览会&#xff08;简称“AWC 2023”&#xff09;全球推介启动大会&#xff0c;该博览会将于2023年10月11日-13日在深圳国际会展中心盛大举…

K8S初级入门系列之十-控制器(StatefulSet)

一、前言 在前面的系列K8S初级入门系列之六-控制器(RC/RS/Deployment)&#xff0c;K8S初级入门系列之七-控制器(Job/CronJob/Daemonset)我们已经介绍了多种控制器&#xff0c;今天我们将介绍最后一种控制器--StatefulSet&#xff0c;顾名思义&#xff0c;即有状态Set&#xff0…

我的第一个flutter项目(Android Webview)

前言&#xff1a;flutter开发环境搭建Flutter的开发环境搭建-图解_☆七年的博客-CSDN博客 第一个flutter简单项目&#xff0c;内容是一个主界面&#xff0c;其中&#xff1a; 1.内容点击数字自增 2.跳转一个空页&#xff0c; 3.跳转一个WebView界面 其中涉及添加主键&#xf…

选择合适明星代言:确保品牌传播与销售成功的关键一步

在当今激烈的市场竞争中&#xff0c;企业需要不断探索新的营销策略来吸引消费者的关注和忠诚度。其中一种被广泛采用的方法是邀请明星代言产品或品牌。判断想请的明星与自己的产品是否相合适是十分重要的步骤&#xff0c;这关系到代言活动的成功与否。以下是一些方法可以帮助你…

DuckDB全面挑战SQLite

概要 当我们想要在具有嵌入式数据库的本地环境中工作时&#xff0c;我们倾向于默认使用 SQLite。虽然大多数情况下这都很好&#xff0c;但这就像骑自行车去 100 公里之外&#xff1a;可能不是最好的选择。 这篇文章中将讨论以下要点&#xff1a; • DuckDB 简介&#xff1a;它…

企业邮箱默认发信账户用途说明及设置方法

有的时候&#xff0c;企业有多个子公司&#xff0c;或者对内和对外需要用不同的邮箱地址&#xff0c;或者发给不同的人需要用不同的邮箱地址&#xff0c;这个时候企业或用户一般会设置别名邮箱用来区分。 那么问题来了&#xff0c;这么多邮箱账号&#xff0c;我发信的时候默认…

大模型的淘金时代,HPE给出了一份智能经济“奇点”攻略

进入2023年&#xff0c;ChatGPT引发了一个新的AI时代——大模型时代。陆奇说&#xff1a;“我已经跟不上大模型时代的狂飙速度了&#xff01;”大模型引发了AI产业整体升级换代&#xff0c;各种大模型层出不穷&#xff0c;科技公司纷纷入局&#xff0c;AI创业公司再次雨后春笋般…

【Redis深度专题】「核心技术提升」探究Redis服务启动的过程机制的技术原理和流程分析的指南(持久化功能分析)

探究Redis服务启动的过程机制的技术原理和流程分析的指南&#xff08;持久化功能分析&#xff09; Redis提供的持久化机制Redis持久化如何工作Redis持久化的故障分析持久化频率操作分析数据库多久调用一次write&#xff0c;将数据写入内核缓冲区&#xff1f;内核多久将系统缓冲…

算法空间复杂度详解

如果您觉得文章不错&#xff0c;期待你的一键三连哦&#xff0c;你的鼓励是我创作的动力之源&#xff0c;让我们一起加油&#xff0c;一起奔跑&#xff0c;让我们顶峰相见&#xff01;&#xff01;&#xff01; 前言 避免在处理大规模问题时出现效率低下&#xff0c;耗费较多…

STM32 Flash学习(一)

STM32 FLASH简介 不同型号的STM32&#xff0c;其Flash容量也不同。 MiniSTM32开发板选择的STM32F103RCT6的FLASH容量为256K字节&#xff0c;属于大容量产品。 STM32的闪存模块由&#xff1a;主存储器、信息块和闪存存储器接口寄存器等3部分组成。 主存储器&#xff0c;该部分…

服务器被爬虫恶意攻击怎么办?

在有预算的情况可以采购第三方服务防火墙&#xff0c;没钱就使用开源的WAF进行防护。 # WAF防火墙的基本防护原理 WAF&#xff08;Web 应用防火墙&#xff09;可以使用多种技术来防止恶意爬虫攻击&#xff0c;例如&#xff1a; 1. 黑名单&#xff1a;WAF 可以使用黑名单技术来…

会点C++还需要再学Python吗?

提到的C、数据结构与算法、操作系统、计算机网络和数据库技术等确实是计算机科学中非常重要的基础知识领域&#xff0c;对于软件开发和计算机工程师来说&#xff0c;它们是必备的核心知识。掌握这些知识对于开发高性能、可靠和安全的应用程序非常重要。Python作为一种脚本语言&…

Spring Cloud+Spring Boot+Mybatis+uniapp+前后端分离实现知识付费平台免费搭建

Java版知识付费-轻松拥有知识付费平台 多种直播形式&#xff0c;全面满足直播场景需求 公开课、小班课、独立直播间等类型&#xff0c;满足讲师个性化直播场景需求&#xff1b;低延迟、双向视频&#xff0c;亲密互动&#xff0c;无论是互动、答疑&#xff0c;还是打赏、带货、…

【C++初阶】介绍stack_queue及OJ题

介绍stack_queue及OJ题 前言一、简单了解1、stack2、queue 二、OJ题&#xff08;前三个栈&#xff0c;第四、五个队列&#xff09;1、最小栈&#xff08;1&#xff09;题目描述&#xff08;2&#xff09;解题思路&#xff08;3&#xff09;解题代码 2、栈的压入、弹出序列&…