LeetCode:柠檬水找零【860】
2024-09-02 22:52:18
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;
}
}
最新文章
- CDN服务技术架构图
- ThinkPHP 关于namespace的事儿
- Spring 定时任务2
- zz转码问题
- 【Java】XML解析之SAX
- Linux 命令之 grep
- Ubuntu Crontab
- PyQt4 的事件与信号 -- 重写事件处理方法
- Opencv读取并获取视频属性
- os.getcwd()、sys.path[0]、sys.argv[0]和__file__的区别,终于弄清楚了
- 为什么大公司一定要使用DevOps?
- ftrace:跟踪你的内核函数! | Linux 中国
- 原生js的remove方法代表删除节点
- 有关导出Excel特殊字符的问题
- (一) 关于配置travis-ci持续集成python pytest测试的相关记录
- [hdu6148][Valley Numer]
- JS代码把JSON字符串转换为对象,计算对象的长度并把它转换为数字类型,把转换的值相加减
- Python 管理 MySQL
- steam
- SpringMvc Intercetor
热门文章
- jenkins调用shell脚本 输出带颜色字体
- 解决java.math.BigDecimal divide方法运算结果为无限小数问题
- 微软同步发行Windows 10和Windows 10 Mobile系统更新
- 清除掉AD的相关属性!
- Atitit.rust语言特性&#160;attilax&#160;总结
- Flask--上下文源码流程
- JavaScript的toString()
- iOS tableView高度缓存
- Power of Cryptography - poj 2109
- Android Studio gradle 文件中 ${supportLibVersion} 用法