当前位置: 首页 > news >正文

「贪心算法」柠檬水找零

力扣原题链接,点击跳转。

假设你的手里没有钱。你要卖柠檬水,每杯5块钱。每个顾客有可能会给你5块钱、10块钱或20块钱,你要拿手中的钱找零。如何判断你能否成功找零呢?

如果一上来就有顾客花10块钱或20块钱,你手中没有钱,自然无法找零。我们考虑一下能找零的情况。如果有顾客花10块钱,你就要找5块钱,如果你手里没有5块钱,则找零失败。如果有顾客花20块钱,你可以找一张10块钱和一张5块钱,或者三张5块钱。如果是你,你会选择一张10块钱和一张5块钱,还是三张5块钱呢?显然,10块钱的作用并不大,只有顾客花20块钱时,才有可能用作找零;但是5块钱的作用就非常大了,不管顾客花10块钱还是20块钱,都有可能用作找零。所以,我们应尽可能把作用不大的10块钱花出去,把作用较大的5块钱留在手里,这就是贪心策略。换句话说,我们优先考虑10+5,如果不行,再考虑5+5+5,如果还不行,那就找零失败。

class Solution
{
public:bool lemonadeChange(vector<int>& bills){int five = 0, ten = 0;for (auto bill : bills){if (bill == 5){five++;}else if (bill == 10){if (five == 0){return false;}five--;ten++;}else{// 贪心,10+5优先于5*3if (five && ten){five--;ten--;}else if (five >= 3){five -= 3;}else{return false;}}}return true;}
};
http://www.lryc.cn/news/352536.html

相关文章:

  • ssm139选课排课系统的设计与开发+vue
  • Python使用virtualenv创建虚拟环境
  • LuatOS-Air二次开发学习
  • 【Linux】关于获取进程退出状态中的core dump标志补充
  • Vitis HLS 学习笔记--抽象并行编程模型-控制驱动与数据驱动
  • Python爬取B站视频:封装一下
  • Android Low Storage机制之DeviceStorageMonitorService
  • 1105: 交换二叉树的孩子结点
  • TensorFlow.js
  • 131. 面试中关于架构设计都需要了解哪些内容?
  • Nodejs+Websocket+uniapp完成聊天
  • 神经网络学习
  • CentOS部署NFS
  • JWT使用方法
  • 使用鱼香肉丝一键安装重新安装ROS后mavros节点报错,.so文件不匹配
  • STM32+CubeMX移植SPI协议驱动W25Q16FLash存储器
  • gpt-4o考场安排
  • 【Unity AR开发插件】四、制作热更数据-AR图片识别场景
  • Spring AOP的实操 + 原理(动态代理)
  • 16.线性回归代码实现
  • Java进阶学习笔记1——课程介绍
  • 【全开源】沃德商协会管理系统源码(FastAdmin+ThinkPHP+Uniapp)
  • python毕设项目选题汇总(全)
  • c#从数据库读取数据到datagridview
  • 训练YOLOv9-S(注意:官方还没有提供YOLOv9-S的网络,我这是根据网络博客进行的步骤,按照0.33、0.50比例调整网络大小,参数量15.60M,计算量67.7GFLOPs)
  • 视觉检测实战项目——九点标定
  • android git提交代码命令以及常见命令的使用
  • 类图的六大关系
  • 家政项目day2 需求分析(模拟入职后熟悉业务流程)
  • 面试总结之:socket线路切换