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/