【每日一题Day273】LC860柠檬水找零 | 贪心

简介: 【每日一题Day273】LC860柠檬水找零 | 贪心

柠檬水找零【LC860】

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

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

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

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

来源:力扣(LeetCode

链接:https://leetcode.cn/problems/lemonade-change

著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

  • 贪心
    遇到20美元时优先使用10美元找零
  • 实现
class Solution {
    public boolean lemonadeChange(int[] bills) {
        int num5 = 0;
        int num10 = 0;
        for (int i = 0; i < bills.length; i++){
            if (bills[i] == 5){
                num5++;
            }else if (bills[i] == 10){
                if (num5 > 0){
                    num5--;
                    num10++;
                }else{
                    return false;
                }
            }else{
                if (num10 > 0 && num5 > 0){
                    num10--;
                    num5--;
                }else if (num5 >= 3){
                    num5 -= 3;
                }else{
                    return false;
                }
            }
        }
        return true;
    }
}
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) {
                five--;
                ten++;
            } else if (bills[i] == 20) {
                if (ten > 0) {
                    ten--;
                    five--;
                } else {
                    five -= 3;
                }
            }
            if (five < 0 || ten < 0) return false;
        }
        return true;
    }
}

image.png

目录
相关文章
|
21天前
lanqiao OJ 1447 砝码称重
lanqiao OJ 1447 砝码称重
27 1
|
21天前
lanqiao OJ 99 分巧克力
lanqiao OJ 99 分巧克力
12 1
|
20天前
lanqiao OJ 2097 青蛙过河
lanqiao OJ 2097 青蛙过河
9 0
|
6月前
|
算法
【贪心算法】|860.柠檬水找零
【贪心算法】|860.柠檬水找零
|
6月前
代码随想录Day29 贪心04 LeetCode T860 柠檬水找零 T406 根据身高重建队列 T452 用最少得箭引爆气球
代码随想录Day29 贪心04 LeetCode T860 柠檬水找零 T406 根据身高重建队列 T452 用最少得箭引爆气球
40 0
|
6月前
蓝桥备战--分糖果OJ2928 贪心 分类讨论
蓝桥备战--分糖果OJ2928 贪心 分类讨论
64 0
|
6月前
|
Java
leetcode-860:柠檬水找零
leetcode-860:柠檬水找零
57 0
|
6月前
【每日一题Day328】LC198打家劫舍 | 动态规划
【每日一题Day328】LC198打家劫舍 | 动态规划
49 0
|
6月前
【每日一题Day298】LC13883n 块披萨 | 动态规划之打家劫舍
【每日一题Day298】LC13883n 块披萨 | 动态规划之打家劫舍
49 0
|
6月前
|
机器学习/深度学习 存储
【每日一题Day323】LC630课程表 III | 动态规划 反悔贪心
【每日一题Day323】LC630课程表 III | 动态规划 反悔贪心
41 0