LeetCode860☞柠檬水找零
关联LeetCode题号860
本题特点
- 贪心
- LeetCode169☞多数元素实现方式类似,相互抵消法
本题思路
- 贪心,优先使用最大的面值10找零钱,否则最后会因为10没有5找零
- 10相比5来说,没有5那么通用
class Solution:
def lemonadeChange(self, bills: list[int]) -> bool:
if bills[0] != 5:
return False
countF = 0
countT = 0
for bill in bills:
if bill == 5:
countF += 1
# 10的情况
elif bill == 10:
if countF != 0:
countF -= 1
countT += 1
else:
return False
# 20的情况
else:
if countF > 0 and countT > 0:
countF -= 1
countT -= 1
elif countF >= 3:
countF -= 3
else:
return False
return True