Me
不可以让后面有零钱的人先来买。所以这个题不能排序
题目的点在于20块钱找零15。15可以是5 + 5 + 5 = 15 或10 + 5 = 15这两种组合
func lemonadeChange(bills []int) bool {
var sum5, sum10 int
//sort.Ints(bills)
for i:=0; i<len(bills); i++ {
switch bills[i] {
case 5:
sum5++
case 10:
if sum5 < 0 {
return false
}
sum5--
sum10++
case 20:
if sum5 <= 0 {
return false
}
if sum10 > 0 {
sum10--
sum5--
} else{
sum5-=3
if sum5 < 0 {
return false
}
}
}
}
return true
}
本文探讨了在不预先排序的情况下解决零钱找补问题的算法。重点在于如何使用5元和10元纸币组合成15元的找零方案,通过跟踪5元和10元纸币的数量,确保在顾客支付20元时能够正确找补15元。代码示例展示了如何在每次交易中更新5元和10元纸币的库存。

被折叠的 条评论
为什么被折叠?



