Skip to content

Latest commit

 

History

History
26 lines (26 loc) · 747 Bytes

860柠檬水找零.md

File metadata and controls

26 lines (26 loc) · 747 Bytes
func lemonadeChange(bills []int) bool {
    var five, ten int
    for i := 0; i < len(bills); i++ {
        if bills[i] == 5 { // 情况一 5元,不用找
            five++
        } else if bills[i] == 10 { // 情况二 10元,要找5元
            if five < 1 { // 没有5元可找,结束
                return false
            }
            ten++
            five--
        } else { // 情况三 20元,要找15元
            if ten > 0 && five > 0 { // 贪心:优先找10元,因为5元能用来找零的机会更多
                ten--
                five--
            } else if five >= 3 {
                five -= 3
            } else {
                return false
            }
        }
    }
    return true
}