LeetCode:柠檬水找零【860】

题目描述

在柠檬水摊上,每一杯柠檬水的售价为 5 美元。

顾客排队购买你的产品,(按账单 bills 支付的顺序)一次购买一杯。

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

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

如果你能给每位顾客正确找零,返回 true ,否则返回 false 。

示例 1

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

示例 2

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

示例 3

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

示例 4

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

提示:

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

题目分析

  让我们尝试模拟每个购买柠檬水的顾客带来的零钱变化

  最初,我们从五美元钞票开始,没有十美元钞票。 如果客户带来5美元的账单,那么我们就接受了。 如果客户带来10美元的账单,我们必须退还5美元的账单。如果我们没有5美元的账单,答案是假的,因为我们无法做出正确的改变。 如果客户带来20美元的账单,我们必须返还15美元。 如果我们有10美元和5美元,那么我们总是更愿意做出改变,因为改变比3美元5美元更严重。 否则,如果我们有三张5美元的钞票,那么我们就会给出。 否则,我们将无法提供15美元的变更,答案是假的。

Java题解

class Solution {
public boolean lemonadeChange(int[] bills) {
int five = 0;
int ten = 0;
for(int i=0;i<bills.length;i++)
{
if(bills[i]==5)
five++;
else if (bills[i]==10) {
if (five == 0)
return false;
five--;
ten++;
}else{
if(five>0&&ten>0)
{
five--;
ten--;
}
else if(five>=3){
five-=3;
}
else
return false;
} }
return true;
}
}

  

最新文章

  1. CDN服务技术架构图
  2. ThinkPHP 关于namespace的事儿
  3. Spring 定时任务2
  4. zz转码问题
  5. 【Java】XML解析之SAX
  6. Linux 命令之 grep
  7. Ubuntu Crontab
  8. PyQt4 的事件与信号 -- 重写事件处理方法
  9. Opencv读取并获取视频属性
  10. os.getcwd()、sys.path[0]、sys.argv[0]和__file__的区别,终于弄清楚了
  11. 为什么大公司一定要使用DevOps?
  12. ftrace:跟踪你的内核函数! | Linux 中国
  13. 原生js的remove方法代表删除节点
  14. 有关导出Excel特殊字符的问题
  15. (一) 关于配置travis-ci持续集成python pytest测试的相关记录
  16. [hdu6148][Valley Numer]
  17. JS代码把JSON字符串转换为对象,计算对象的长度并把它转换为数字类型,把转换的值相加减
  18. Python 管理 MySQL
  19. steam
  20. SpringMvc Intercetor

热门文章

  1. jenkins调用shell脚本 输出带颜色字体
  2. 解决java.math.BigDecimal divide方法运算结果为无限小数问题
  3. 微软同步发行Windows 10和Windows 10 Mobile系统更新
  4. 清除掉AD的相关属性!
  5. Atitit.rust语言特性&#160;attilax&#160;总结
  6. Flask--上下文源码流程
  7. JavaScript的toString()
  8. iOS tableView高度缓存
  9. Power of Cryptography - poj 2109
  10. Android Studio gradle 文件中 ${supportLibVersion} 用法