zoukankan      html  css  js  c++  java
  • Leetcode 860. 柠檬水找零 贪心

    地址 https://leetcode-cn.com/problems/lemonade-change/

    在柠檬水摊上,每一杯柠檬水的售价为 5 美元。
    
    顾客排队购买你的产品,(按账单 bills 支付的顺序)一次购买一杯。
    
    每位顾客只买一杯柠檬水,然后向你付 5 美元、10 美元或 20 美元。你必须给每个顾客正确找零,也就是说净交易是每位顾客向你支付 5 美元。
    
    注意,一开始你手头没有任何零钱。
    
    如果你能给每位顾客正确找零,返回 true ,否则返回 false 。
    
    示例 1:
    
    输入:[5,5,5,10,20]
    输出:true
    解释:
    前 3 位顾客那里,我们按顺序收取 35 美元的钞票。
    第 4 位顾客那里,我们收取一张 10 美元的钞票,并返还 5 美元。
    第 5 位顾客那里,我们找还一张 10 美元的钞票和一张 5 美元的钞票。
    由于所有客户都得到了正确的找零,所以我们输出 true。
    示例 2:
    
    输入:[5,5,10]
    输出:true
    示例 3:
    
    输入:[10,10]
    输出:false
    示例 4:
    
    输入:[5,5,10,10,20]
    输出:false
    解释:
    前 2 位顾客那里,我们按顺序收取 25 美元的钞票。
    对于接下来的 2 位顾客,我们收取一张 10 美元的钞票,然后返还 5 美元。
    对于最后一位顾客,我们无法退回 15 美元,因为我们现在只有两张 10 美元的钞票。
    由于不是每位顾客都得到了正确的找零,所以答案是 false。
     
    
    提示:
    
    0 <= bills.length <= 10000
    bills[i] 不是 5 就是 10 或是 20 

    解答 

    找钱的思维就是尽量给整别人 自己留零钱  简单贪心

    class Solution {
    public:
        bool lemonadeChange(vector<int>& bills) {
            int five =0 ;int ten = 0; // 记录 5 10  的数目
            for(int i = 0; i< bills.size();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;
        }
    };
    作 者: itdef
    欢迎转帖 请保持文本完整并注明出处
    技术博客 http://www.cnblogs.com/itdef/
    B站算法视频题解
    https://space.bilibili.com/18508846
    qq 151435887
    gitee https://gitee.com/def/
    欢迎c c++ 算法爱好者 windows驱动爱好者 服务器程序员沟通交流
    如果觉得不错,欢迎点赞,你的鼓励就是我的动力
    阿里打赏 微信打赏
  • 相关阅读:
    关于yyyy-MM-dd格式日期字符串,解析成LocalDateTime遇到的问题
    idea设置代码提示不区分大小写
    不错的Django技术网址
    Django-Rest-Framework 教程: 快速入门
    Djanto static静态文件配置
    Html5 touch event
    Zepto.js touch模块深入分析
    Python单元测试框架之pytest -- fixtures
    Python:高级主题之(属性取值和赋值过程、属性描述符、装饰器)
    Nginx基本配置、性能优化指南
  • 原文地址:https://www.cnblogs.com/itdef/p/12822105.html
Copyright © 2011-2022 走看看