leetcode_problem860
rank: easy
1. 问题
问题描述看图1,大致意思是最初自己手上是没有任何钱,一杯柠檬水5刀,买家有三种给法(5,10,20),在给定的input,也就是money的序列,问你是否找的开,可看图2的例子
图1
图2
2.解决方案
1 class Solution: 2 def lemonadeChange(self, bills): 3 """ 4 :type bills: List[int] 5 :rtype: bool 6 """ 7 num_5, num_10 = 0, 0 8 for bill in bills: 9 if bill == 5: 10 num_5 += 1 11 elif bill == 10: 12 if num_5 > 0: 13 num_5 -= 1 14 num_10 += 1 15 else: 16 return False 17 else: 18 if num_5 > 0 and num_10 > 0: 19 num_5 -= 1 20 num_10 -= 1 21 elif num_5 > 3: 22 num_5 -= 3 23 else: 24 return False 25 return True
思路很简单,用两个数去记录5刀和10刀的数目,只要找得开,则没有问题,返回True,否则返回False
参考
1.https://leetcode.com/problems/lemonade-change/description/