算法题:柠檬水找零(典型的贪心算法问题)

news2024/11/19 19:36:13

这道题就是纯贪心算法题,遍历每个顾客,先把钱收了,如果是10块钱就判断手里头有没有5元用于找零;如果是20块钱,先判断是不是有10元+5元,如果没有就再判断是否有3个5元。没有的话就直接返回 False。(完整题目附在了最后面)

代码如下:

class Solution(object):
    def lemonadeChange(self, bills):
        if bills[0] > 5:
            return False
        changes = {5: 0, 10: 0, 20: 0}
        for bill in bills:
            changes[bill] += 1
            if bill == 10:
                if changes[5] != 0:
                    changes[5] -= 1
                else:
                    return False
            if bill == 20:
                if changes[10] != 0 and changes[5] != 0:
                    changes[10] -= 1
                    changes[5] -= 1
                elif changes[5] >= 3:
                    changes[5] -= 3
                else:
                    return False
        return True

完整题目:

860. 柠檬水找零

在柠檬水摊上,每一杯柠檬水的售价为 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 <= 10^5
  • bills[i] 不是 5 就是 10 或是 20 

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

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

相关文章

保研经历分享(一)

这个系列的文章主要是想记录一下自己大学期间最重要的一件事&#xff08;保研!!&#xff09;的经历、过程&#xff0c;外加一些保研流程介绍、面试经验、院校投递、踩坑经历&#xff0c;主要给学弟学妹们避雷&#xff0c;也做一些借鉴吧~ 这一篇主要是对保研过程的一些介绍&…

如何在虚幻引擎中渲染动画?

大家好&#xff0c;今天我将展示如何在虚幻引擎中渲染动画&#xff0c;以及虚幻引擎渲染动画怎么设置的方法步骤。 需要提前了解&#xff1a; 虚幻引擎本地运行慢、渲染慢、本地配置不够&#xff0c;如何解决&#xff1f; 渲云云渲染支持虚幻引擎离线渲染&#xff0c;可批量…

【UE5】Pixel Streaming 配置https协议

【UE5】Pixel Streaming 配置https协议 Pixel Streaming 传输视频流插件&#xff0c;使用任何现代Web浏览器进行连接&#xff0c;并从虚幻引擎应用程序中流式传输渲染的帧像素和音频。 用户无需安装或下载任何内容。 HTTPS &#xff08;全称&#xff1a;Hypertext Transfer Pro…

大模型部署手记(12)LLaMa2+Chinese-LLaMA-Plus-2-7B+Windows+text-gen+中文对话

1.简介&#xff1a; 组织机构&#xff1a;Meta&#xff08;Facebook&#xff09; 代码仓&#xff1a;https://github.com/facebookresearch/llama 模型&#xff1a;chinese-alpaca-2-7b-hf 下载&#xff1a;使用百度网盘下载 硬件环境&#xff1a;暗影精灵7Plus Windows版…

“套壳”OpenAI,注定消亡!全球首个 20 万字大模型发布丨 RTE 开发者日报 Vol.63

开发者朋友们大家好&#xff1a; 这里是 「RTE 开发者日报」 &#xff0c;每天和大家一起看新闻、聊八卦。我们的社区编辑团队会整理分享 RTE &#xff08;Real Time Engagement&#xff09; 领域内「有话题的 新闻 」、「有态度的 观点 」、「有意思的 数据 」、「有…

见微知著:从企业售后技术支持看云计算发展

作者&#xff1a;余凯 售后业务中的细微变化 作为阿里云企业容器技术支持的一员&#xff0c;每天会面对全球各地企业级客户提出的关于容器的各种问题&#xff0c;通过这几年的技术支持的经历&#xff0c;逐步发现容器问题客户的一些惯性&#xff0c;哪些是重度用户&#xff0…

Unity设计模式——外观模式

子系统的几个类&#xff1a; class SubSystemOne {public void MethodOne(){Debug.Log("方法一");} } class SubSystemTwo {public void MethodTwo(){Debug.Log("方法2");} } class SubSystemThrre {public void MethodThree(){Debug.Log("方法三&qu…

企业视频直播画面时移看点的用法

企业视频直播画面时移时移功能&#xff0c;可以让客户在观看直播的时&#xff0c;实时回看直播内容&#xff1b;看点功能&#xff0c;可以将视频内容分段标记&#xff0c;能让客户明确内容结构&#xff0c;快速定位目标信息&#xff0c;提升观看体验&#xff0c;跟我一起来体验…

cad由于找不到mfc140u.dll怎么回事?mfc140u.dll丢失的解决方法

当你在使用 CAD&#xff08;计算机辅助设计&#xff09;软件时&#xff0c;如果出现“找不到 mfc140u.dll”的错误提示&#xff0c;这通常意味着你的计算机上缺少这个重要的动态链接库文件。Mfc140u.dll 是 Microsoft Foundation Class&#xff08;MFC&#xff09;库的一部分&a…

[CISCN2019 总决赛 Day2 Web1]Easyweb 盲注 \\0绕过 文件上传文件名木马

首先开局登入 我们开始目录扫描 扫除 robots.txt 现在只有三个文件 最后发现 只有 image.php.bak存在 这里主要的地方是 \\0 因为第一个\会被转义 这里就会变为 \0 表示空白 那我们sql语句就会变为了 select * from images where id\0 但是这里我们不可以使用 \\ 因为…

数据结构题型16-线索二叉树

文章目录 1 参考博客&#xff1a;2 线索二叉树的节点结构3、分析他人博客 1 参考博客&#xff1a; 1、【图解】数据结构代码领背-中序建立线索二叉树 2、【数据结构】中序线索二叉树的实现(源代码以及讲解) 2 线索二叉树的节点结构 3、分析他人博客 具体博客地址请参考&…

使用docker搭建kafka集群、可视化操作台

单机搭建 1 拉取zookeeper镜像 docker pull wurstmeister/zookeeper 2 启动zookeeper容器 docker run -d --name zookeeper -p 2181:2181 -v /etc/localtime:/etc/localtime wurstmeister/zookeeper 3 拉取kafka镜像 docker pull wurstmeister/kafka 4 启动kafka镜像 docker…

【配置vscode编写c或c++程序,并在外部控制台输出程序和解决中文乱码问题!!!】

配置vscode编写c或c程序&#xff0c;并在外部控制台输出程序和解决中文乱码问题&#xff01;&#xff01;&#xff01; 1、点击扩展&#xff0c;添加C语言所需的插件&#xff08;点击安装&#xff0c;安装完成后点击设置标志安装另一个版本&#xff0c;注意一定要安装1.8.4版本…

赋能智能制造产业发展,开源网安入选广东省智能制造生态合作伙伴

​为贯彻《“十四五”智能制造发展规划》&#xff0c;加快构建广东省智能制造发展生态&#xff0c;广东省工业和信息化厅组织开展了第三批广东省智能制造生态合作伙伴筛选工作。经专家评审和公示&#xff0c;开源网安成功入选第三批广东省智能制造生态合作伙伴。 一直以来&…

期权开户流程合集——期权开户的操作步骤

最详细的期权开户流程介绍是怎样的&#xff0c;下文为大家介绍期权开户流程合集——期权开户的操作步骤的知识点&#xff0c;希望对读者有所帮助&#xff0c;期权开户流程和方式分两种&#xff0c;一种券商&#xff0c;一种期权分仓平台&#xff0c;有啥区别下文揭秘。本文来自…

亚马逊流量攻略:如何将流量转化为销售,测评实现销售飙升!

在电商领域&#xff0c;流量获取一直是一个核心议题。对于任何希望增加订单量的商家而言&#xff0c;将流量引导至自身店铺并成功转化为销售至关重要。对于初入电商领域或规模较小的卖家来说&#xff0c;亚马逊内部的流量获取通常可带来显著的销售业绩。那么&#xff0c;如何利…

从零学算法(LCR 180)

文件组合.待传输文件被切分成多个部分&#xff0c;按照原排列顺序&#xff0c;每部分文件编号均为一个 正整数&#xff08;至少含有两个文件&#xff09;。传输要求为&#xff1a;连续文件编号总和为接收方指定数字 target 的所有文件。请返回所有符合该要求的文件传输组合列表…

基于数学模型水动力模拟、水质建模、复杂河网构建技术在环境影响评价、排污口论证及防洪评价中的实践技术应用

目录 专题一 一维水动力模型在河流水动力模拟中的应用 专题二 一维复杂河网模型构建及建筑物设置 专题三 一维水质模型在入河排污口和环境影响评价中的应用 专题四 平面二维水动力模型的构建和验证 专题五 平面二维水动力模型在防洪影响评价中的应用 专题六 平面二维水动…

进阶JAVA篇-深入了解内部类

目录 一.内部类概述&#xff1a; 二.内部类可以分为四种&#xff1a; 2.1成员内部类 2.1.1如何编写一个成员内部类呢&#xff1f; 2.1.2该如何创建内部类的对象&#xff1f; 2.1.3在内部类中该如何访问外部类中的成员呢&#xff1f; 2.2静态内部类 2.2.1如何来创建静…