• LeetCode:柠檬水找零【860】


    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;
        }
    }
    

      

  • 相关阅读:
    Json处理函数json_encode json_decode
    会员注册审核状态更新计算
    $_GLOBALS超全局数组和global定义的全局变量区别?
    $_CFG = load_config(); /* 载入系统参数 */
    window.clearInterval与window.setInterval的用法 定时器的设置
    php中文件引入require
    修改本地数据库root权限密码
    JQuery执行函数与window.onload函数
    Android 启动白屏或者黑屏闪现解决
    Android状态栏微技巧,带你真正意义上的沉浸式
  • 原文地址:https://www.cnblogs.com/MrSaver/p/9521041.html
Copyright © 2020-2023  润新知