leetcode(一)

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/

原文地址:https://www.cnblogs.com/fydeblog/p/9266038.html