柠檬水找零

题目链接: https://leetcode.cn/problems/lemonade-change

解题思路:

  1. 简单模拟,因为没有比20更大的面值,所以20无需用于找零,只需要保存5元和10元的个数即可

  2. 优先使用10元找零,防止后续出现10元无法找零的情况

func lemonadeChange(bills []int) bool {
    five,ten := 0,0
    for _, v := range bills {
        if v == 5 {
            five++
        } else if v == 10 {
            if five == 0 {
                return false
            }
            five--
            ten++
        }else{
            if five>0&&ten>0{
                five--
                ten--
            }else if five >=3{
                five -= 3
            }else{
                return false
            }
        }
    }
    return true
}

复杂度分析

最后更新于

这有帮助吗?