Golang:
思路:注意这里并不可以把所有钱都收上来然后依次找掉,所以必须要一个人一个人的解决。这里用了一点贪心,即在处理20美元上,优先选择10+5的处理方法,其次是5+5+5。
闲话:写完这题我的简单题就完成了170道了,后面会转去挑一些中等题做。
代码如下:
func lemonadeChange(bills []int) bool {
if len(bills)==0{
return true
}
m5,m10:=0,0
for i:=0;i<len(bills);i++ {
if bills[i]==5 {
m5++
}else if bills[i]==10 {
if m5>0 {
m5--
m10++
}else{
return false
}
}else {
if m10>0&&m5>0 {
m10--
m5--
}else if m5>=3 {
m5=m5-3
}else{
return false
}
}
}
return true
}
有疑问加站长微信联系(非本文作者)