• 860. 柠檬水找零


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

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

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

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

    示例 1:

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

    示例 2:

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

    提示:

    • 1 <= bills.length <= 105
    • bills[i] 不是 5 就是 10 或是 20 
    1. class Solution {
    2. public:
    3. bool lemonadeChange(vector<int>& bills) {
    4. int five=0,ten=0;
    5. for(int bill:bills)
    6. {
    7. if(bill==5)
    8. five++;
    9. if(bill==10)
    10. {
    11. if(five==0)
    12. return false;
    13. ten++;
    14. five--;
    15. }
    16. if(bill==20)
    17. {
    18. if(ten>0&&five>0)
    19. {
    20. ten--;
    21. five--;
    22. }
    23. else if(five>=3)
    24. five-=3;
    25. else
    26. return false;
    27. }
    28. }
    29. return true;
    30. }
    31. };

  • 相关阅读:
    Mac配置nvm包管理
    C++ STL(九) -------- 哈希表封装unordered_map和unordered_set
    Spring MVC组件之HandlerMapping
    12 个适合做外包项目的开源后台管理系统
    密钥管理系统功能及作用简介 安当加密
    可视化工具Datart踩(避)坑指南(3)——筛选框的疑惑
    将 Ordinals 与比特币智能合约集成:第 3 部分
    【HTML】三种加载动画
    【计数DP】CF1794D
    分享30个PHP源码,总有一款适合你
  • 原文地址:https://blog.csdn.net/ghblk/article/details/133956399