博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
860. Lemonade Change
阅读量:5164 次
发布时间:2019-06-13

本文共 2767 字,大约阅读时间需要 9 分钟。

柠檬水?找零问题,有5 10 20三种面值。解法:能用10元找零就不用5块。

At a lemonade stand, each lemonade costs $5

Customers are standing in a queue to buy from you, and order one at a time (in the order specified by bills).

Each customer will only buy one lemonade and pay with either a $5$10, or $20 bill.  You must provide the correct change to each customer, so that the net transaction is that the customer pays $5.

Note that you don't have any change in hand at first.

Return true if and only if you can provide every customer with correct change.

 

Example 1:

Input: [5,5,5,10,20]Output: trueExplanation: From the first 3 customers, we collect three $5 bills in order.From the fourth customer, we collect a $10 bill and give back a $5.From the fifth customer, we give a $10 bill and a $5 bill.Since all customers got correct change, we output true.

Example 2:

Input: [5,5,10]Output: true

Example 3:

Input: [10,10]Output: false

Example 4:

Input: [5,5,10,10,20]Output: falseExplanation: From the first two customers in order, we collect two $5 bills.For the next two customers in order, we collect a $10 bill and give back a $5 bill.For the last customer, we can't give change of $15 back because we only have two $10 bills.Since not every customer received correct change, the answer is false.
class Solution {public:    bool lemonadeChange(vector
& bills) { int five=0,ten=0; for(int i:bills){ if(i==5){ five++; } else if(i==10){ if(five>=1){ ten++; five--; } else{ return false; } } else if(i==20){ if(ten>=1&&five>=1){ ten--; five--; }else if(five>=3){ five-=3; }else{ return false; } } } return true; }};

python代码

class Solution(object):    def lemonadeChange(self, bills):        """        :type bills: List[int]        :rtype: bool        """        five,ten=0,0        for bill in bills:            #print "bill: {}".format(bill)            if bill==5:                five+=1            elif bill==10:                if five>=1:                    five-=1                    ten+=1                else:                    return False            elif bill==20:                if ten>=1 and five>=1:                    ten-=1                    five-=1                elif five>=3:                    five-=3                else:                    return False            #print "five: {}, ten: {}".format(five,ten)                        return True

 

转载于:https://www.cnblogs.com/learning-c/p/9281142.html

你可能感兴趣的文章
写接口请求类型为get或post的时,参数定义的几种方式,如何用注解(原创)--雷锋...
查看>>
【OpenJ_Bailian - 2287】Tian Ji -- The Horse Racing (贪心)
查看>>
Java网络编程--socket服务器端与客户端讲解
查看>>
List_统计输入数值的各种值
查看>>
学习笔记-KMP算法
查看>>
Timer-triggered memory-to-memory DMA transfer demonstrator
查看>>
跨域问题整理
查看>>
[Linux]文件浏览
查看>>
64位主机64位oracle下装32位客户端ODAC(NFPACS版)
查看>>
获取国内随机IP的函数
查看>>
今天第一次写博客
查看>>
江城子·己亥年戊辰月丁丑日话凄凉
查看>>
IP V4 和 IP V6 初识
查看>>
Spring Mvc模式下Jquery Ajax 与后台交互操作
查看>>
(转)matlab练习程序(HOG方向梯度直方图)
查看>>
『Raid 平面最近点对』
查看>>
【ADO.NET基础-数据加密】第一篇(加密解密篇)
查看>>
C语言基础小结(一)
查看>>
STL中的优先级队列priority_queue
查看>>
UE4 使用UGM制作血条
查看>>