File tree 2 files changed +79
-0
lines changed
2 files changed +79
-0
lines changed Original file line number Diff line number Diff line change 6
6
[[ 20201203] 322. 零钱兑换-Medium] ( 322.%20零钱兑换-Medium.md )
7
7
[[ 20201206] 118. 杨辉三角-Easy] ( 动态规划/118.%20杨辉三角-Easy.md )
8
8
[[ 20201207] 62. 不同路径-Medium] ( 动态规划/62.%20不同路径-Medium.md )
9
+ [[ 20201210] 860. 柠檬水找零-Easy] ( 贪心/860.%20柠檬水找零-Easy.md )
9
10
## 2020.11
10
11
[[ 20201111] 474. 一和零-Medium] ( 动态规划/背包问题/474.%20一和零-Medium.md )
11
12
[[ 20201116] 1641. 统计字典序元音字符串的数目-Medium] ( 动态规划/1641.%20统计字典序元音字符串的数目-Medium.md )
135
136
## 贪心
136
137
[ 134. 加油站-Medium] ( 贪心/134.%20加油站-Medium.md )
137
138
[ 763. 划分字母区间-Medium] ( 贪心/763.%20划分字母区间-Medium.md )
139
+ [ 860. 柠檬水找零-Easy] ( 贪心/860.%20柠檬水找零-Easy.md )
138
140
[ 976. 三角形的最大周长-Easy] ( 贪心/976.%20三角形的最大周长-Easy.md )
139
141
[ 1402. 做菜顺序-Hard] ( 贪心/1402.%20做菜顺序-Hard.md )
Original file line number Diff line number Diff line change
1
+ # [ Description] ( https://leetcode-cn.com/problems/lemonade-change )
2
+ 在柠檬水摊上,每一杯柠檬水的售价为 5 美元。
3
+
4
+ 顾客排队购买你的产品,(按账单 bills 支付的顺序)一次购买一杯。
5
+
6
+ 每位顾客只买一杯柠檬水,然后向你付 5 美元、10 美元或 20 美元。你必须给每个顾客正确找零,也就是说净交易是每位顾客向你支付 5 美元。
7
+
8
+ 注意,一开始你手头没有任何零钱。
9
+
10
+ 如果你能给每位顾客正确找零,返回 true ,否则返回 false 。
11
+
12
+ 示例 1:
13
+ ``` python
14
+ 输入:[5 ,5 ,5 ,10 ,20 ]
15
+ 输出:true
16
+ 解释:
17
+ 前 3 位顾客那里,我们按顺序收取 3 张 5 美元的钞票。
18
+ 第 4 位顾客那里,我们收取一张 10 美元的钞票,并返还 5 美元。
19
+ 第 5 位顾客那里,我们找还一张 10 美元的钞票和一张 5 美元的钞票。
20
+ 由于所有客户都得到了正确的找零,所以我们输出 true。
21
+ ```
22
+ 示例 2:
23
+ ``` python
24
+ 输入:[5 ,5 ,10 ]
25
+ 输出:true
26
+ ```
27
+ 示例 3:
28
+ ``` python
29
+ 输入:[10 ,10 ]
30
+ 输出:false
31
+ ```
32
+ 示例 4:
33
+ ``` python
34
+ 输入:[5 ,5 ,10 ,10 ,20 ]
35
+ 输出:false
36
+ 解释:
37
+ 前 2 位顾客那里,我们按顺序收取 2 张 5 美元的钞票。
38
+ 对于接下来的 2 位顾客,我们收取一张 10 美元的钞票,然后返还 5 美元。
39
+ 对于最后一位顾客,我们无法退回 15 美元,因为我们现在只有两张 10 美元的钞票。
40
+ 由于不是每位顾客都得到了正确的找零,所以答案是 false。
41
+ ```
42
+
43
+ 提示:
44
+
45
+ - 0 <= bills.length <= 10000
46
+ - bills[ i] 不是 5 就是 10 或是 20
47
+
48
+
49
+ # Solution
50
+ - 时间复杂度:$O(N)$
51
+ - 空间复杂度:$O(1)$
52
+ - 找零时因为10元适应的case更少,在用户付20时,所以优先找10元的。
53
+ ``` python
54
+ class Solution :
55
+ def lemonadeChange (self , bills : List[int ]) -> bool :
56
+ five, ten = 0 , 0
57
+ for i in range (len (bills)):
58
+ if bills[i] == 5 :
59
+ five += 1
60
+ elif bills[i] == 10 :
61
+ if five == 0 :
62
+ return False
63
+ else :
64
+ five -= 1
65
+ ten += 1
66
+ else :
67
+ if five == 0 or ten == 0 :
68
+ if five < 3 :
69
+ return False
70
+ else :
71
+ five -= 3
72
+ else :
73
+ ten -= 1
74
+ five -= 1
75
+
76
+ return True
77
+ ```
You can’t perform that action at this time.
0 commit comments