檸檬水找零

2021-10-21 17:24:10 字數 1461 閱讀 4740

題目鏈結

在檸檬水攤上,每一杯檸檬水的售價為 5 美元。

顧客排隊購買你的產品,(按賬單 bills 支付的順序)一次購買一杯。

每位顧客只買一杯檸檬水,然後向你付 5 美元、10 美元或 20 美元。你必須給每個顧客正確找零,也就是說淨交易是每位顧客向你支付 5 美元。

注意,一開始你手頭沒有任何零錢。

如果你能給每位顧客正確找零,返回 true ,否則返回 false 。

示例 1:

輸入:[5,5,5,10,20]

輸出:true

解釋:前 3 位顧客那裡,我們按順序收取 3 張 5 美元的鈔票。

第 4 位顧客那裡,我們收取一張 10 美元的鈔票,並返還 5 美元。

第 5 位顧客那裡,我們找還一張 10 美元的鈔票和一張 5 美元的鈔票。

由於所有客戶都得到了正確的找零,所以我們輸出 true。

示例 2:

輸入:[5,5,10]

輸出:true

示例 3:

輸入:[10,10]

輸出:false

示例 4:

輸入:[5,5,10,10,20]

輸出:false

解釋:前 2 位顧客那裡,我們按順序收取 2 張 5 美元的鈔票。

對於接下來的 2 位顧客,我們收取一張 10 美元的鈔票,然後返還 5 美元。

對於最後一位顧客,我們無法退回 15 美元,因為我們現在只有兩張 10 美元的鈔票。

由於不是每位顧客都得到了正確的找零,所以答案是 false。

0 <= bills.length <= 10000

bills[i] 不是 5 就是 10 或是 20

首先要清楚剛開始是沒有零錢的,所以得從0開始記錄收到的零錢,顧客會給5,10,20這三種面值的錢,但是只要5和10塊才有可能作為找零,所以每次顧客付款的時候,我們要記錄下5和10的零錢數字,但前提是顧客給的錢我們都能正確找零,首先是5,不用找零直接記錄下來,其二是10,只要當我們存在5元的零錢才能完成找零,最後是20,我們可以找零的方式有兩種,一種是全部用5元的,一種是用10和5的組合,我們應該選用哪一種呢?如果我們把5元的用了,那麼接下來有10元的就沒零錢找了,5元的可以兩個當10元用,但是10元的不能當兩個5元用,也就是說5元的能滿足更多的找零需求,所有得把它放到最後不得不用的時候再用

bool

lemonadechange

(vector<

int>

& bills)

else

return

false;}

//收到20元

else

else

if(coin5 >=3)

coin5 -=3

;//更新5元的數量

else

return

false;}

}return

true

;}

檸檬水找零

在檸檬水攤上,每一杯檸檬水的售價為5美元。顧客排隊購買你的產品,按賬單bills支付的順序 一次購買一杯。每位顧客只買一杯檸檬水,然後向你付5美元 10美元或20美元。你必須給每個顧客正確找零,也就是說淨交易是每位顧客向你支付5美元。注意,一開始你手頭沒有任何零錢。如果你能給每位顧客正確找零,返回t...

檸檬水找零

在檸檬水攤上,每一杯檸檬水的售價為 5 美元。顧客排隊購買你的產品,按賬單 bills 支付的順序 一次購買一杯。每位顧客只買一杯檸檬水,然後向你付 5 美元 10 美元或 20 美元。你必須給每個顧客正確找零,也就是說淨交易是每位顧客向你支付 5 美元。注意,一開始你手頭沒有任何零錢。如果你能給每...

檸檬水找零

在檸檬水攤上,每一杯檸檬水的售價為 5 美元。顧客排隊購買你的產品,按賬單 bills 支付的順序 一次購買一杯。每位顧客只買一杯檸檬水,然後向你付 5 美元 10 美元或 20 美元。你必須給每個顧客正確找零,也就是說淨交易是每位顧客向你支付 5 美元。注意,一開始你手頭沒有任何零錢。如果你能給每...