zoukankan      html  css  js  c++  java
  • 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;
        }
    }
    

      

  • 相关阅读:
    javascript 正則表達式补充
    NOIP2010 引水入城
    [Elasticsearch] 集群的工作原理
    师傅快看!全国首个民间资本为主的物联网行业投融资平台诞生了!
    【解决】hive与hbase表结合级联查询的问题
    ssh2项目整合 struts2.1+hibernate3.3+spring3 基于hibernate注解和struts2注解
    Python网络爬虫(一):初步认识网络爬虫
    Android天气预报+百度天气接口
    《从零開始学Swift》学习笔记(Day 55)——使用try?和try!差别
    使用SQL Profile及SQL Tuning Advisor固定运行计划
  • 原文地址:https://www.cnblogs.com/MrSaver/p/9521041.html
Copyright © 2011-2022 走看看