题目
思路
。。我没做出来。但结果就是直接模拟题(虽然在模拟的过程中有一点贪心的思想,聊胜于无吧)
我为什么没做出来呢?
首先,第一次做完才知道题目读错了。这里钱是分为 5/10/20的,所以是不能累加在一起的!
必须要分开 计数five/ten/twenty(其实不写20也行),不然就会混乱的!!别想太多!
其次这道题因为条件限定很死,就三种情况,直接模拟就好了。
var lemonadeChange = function(bills) {
let fiveCount = 0
let tenCount = 0
for(let i = 0; i < bills.length; i++) {
let bill = bills[i]
if(bill === 5) {
fiveCount += 1
} else if (bill === 10) {
if(fiveCount > 0) {
fiveCount -=1
tenCount += 1
} else {
return false
}
} else {
if(tenCount > 0 && fiveCount > 0) {
tenCount -= 1
fiveCount -= 1
} else if(fiveCount >= 3) {
fiveCount -= 3
} else {
return false
}
}
}
return true
};