微網(wǎng)站促銷版seo輔助工具
在檸檬水?dāng)偵?#xff0c;每一杯檸檬水的售價(jià)為?5
?美元。顧客排隊(duì)購(gòu)買你的產(chǎn)品,(按賬單?bills
?支付的順序)一次購(gòu)買一杯。
每位顧客只買一杯檸檬水,然后向你付?5
?美元、10
?美元或?20
?美元。你必須給每個(gè)顧客正確找零,也就是說凈交易是每位顧客向你支付?5
?美元。
注意,一開始你手頭沒有任何零錢。
給你一個(gè)整數(shù)數(shù)組?bills
?,其中?bills[i]
?是第?i
?位顧客付的賬。如果你能給每位顧客正確找零,返回?true
?,否則返回?false
?。
示例 1:
輸入:bills = [5,5,5,10,20] 輸出:true 解釋: 前 3 位顧客那里,我們按順序收取 3 張 5 美元的鈔票。 第 4 位顧客那里,我們收取一張 10 美元的鈔票,并返還 5 美元。 第 5 位顧客那里,我們找還一張 10 美元的鈔票和一張 5 美元的鈔票。 由于所有客戶都得到了正確的找零,所以我們輸出 true。
示例 2:
輸入:bills = [5,5,10,10,20] 輸出:false 解釋: 前 2 位顧客那里,我們按順序收取 2 張 5 美元的鈔票。 對(duì)于接下來的 2 位顧客,我們收取一張 10 美元的鈔票,然后返還 5 美元。 對(duì)于最后一位顧客,我們無法退回 15 美元,因?yàn)槲覀儸F(xiàn)在只有兩張 10 美元的鈔票。 由于不是每位顧客都得到了正確的找零,所以答案是 false。
提示:
1 <= bills.length <= 105
bills[i]
?不是?5
?就是?10
?或是?20
?
class Solution {
public:bool lemonadeChange(vector<int>& bills) {//5//10//20 10+5 5+5+5int five = 0,ten = 0;for(int i = 0;i < bills.size();i++){if(bills[i] == 5){five++;}else if(bills[i] == 10){if(five < 1) return false; //沒有五塊 必死ten++; //收獲10five--; //補(bǔ)出去5}else{//貪心 ,先給10+5if(ten >= 1 && five >= 1){ // 10 5ten--;five--;} else if(ten < 1 && five >= 3){ // 5 5 5five -= 3;}else return false;}}return true;}
};