贪心
在柠檬水摊上,每一杯柠檬水的售价为 5 美元。
顾客排队购买你的产品,(按账单 bills 支付的顺序)一次购买一杯。
每位顾客只买一杯柠檬水,然后向你付 5 美元、10 美元或 20 美元。你必须给每个顾客正确找零,也就是说净交易是每位顾客向你支付 5 美元。
注意,一开始你手头没有任何零钱。
如果你能给每位顾客正确找零,返回 true ,否则返回 false 。
链接

  1. 输入:[5,5,5,10,20]
  2. 输出:true
  3. 解释:
  4. 3 位顾客那里,我们按顺序收取 3 5 美元的钞票。
  5. 4 位顾客那里,我们收取一张 10 美元的钞票,并返还 5 美元。
  6. 5 位顾客那里,我们找还一张 10 美元的钞票和一张 5 美元的钞票。
  7. 由于所有客户都得到了正确的找零,所以我们输出 true

贪心


如果给5元,不用找 (five++
如果给10元,找5元,否则找不开 (five—
如果给20元,优先找10+5,再找5+5+5,否则找不开 (five—&&ten— || five-3

  1. func lemonadeChange(bills []int) bool {
  2. five := 0
  3. ten := 0
  4. for _, bill := range bills {
  5. if bill == 5 {
  6. five++
  7. }else if bill == 10 {
  8. if five > 0 {
  9. five--
  10. ten++
  11. }else{
  12. return false
  13. }
  14. }else if bill == 20 {
  15. if ten > 0 && five > 0 {
  16. ten--
  17. five--
  18. }else if five >=3 {
  19. five -= 3
  20. }else {
  21. return false
  22. }
  23. }
  24. }
  25. return true
  26. }