Leetcode 860. 柠檬水找零 解题思路及C++实现
生活随笔
收集整理的這篇文章主要介紹了
Leetcode 860. 柠檬水找零 解题思路及C++实现
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
解題思路:
程序邏輯:遍歷bills容器(數(shù)組),使用unordered_map記錄手中的5美元和10美元的數(shù)量(無需記錄20美元,因?yàn)椴豢赡軐?0美元找零出去)。
循環(huán)體內(nèi)程序:
每當(dāng)遇到一個(gè)5美元,則相應(yīng)數(shù)量加1;
當(dāng)遇到一個(gè)10美元時(shí),判斷手中是否有5美元,沒有的話就return false,有的話就將5美元數(shù)量減1,10美元數(shù)量加1;
當(dāng)遇到20美元時(shí),有兩種找零情況:找一張10美元和一張5美元,或者找零三張5美元。
?
class Solution { public:bool lemonadeChange(vector<int>& bills) {//只需要在unordered_map中記錄5和10美元的數(shù)量unordered_map<int, int> mp;for(auto b: bills){if(b == 5) mp[b]++;else if(b == 10){if(mp[5] == 0) return false;else{ //找零一張5美元,收入一張10美元mp[5]--;mp[10]++;}}else{ //必須找零一張10美元和一張5美元,或者找零3張5美元if(mp[10] > 0){ //有10美元,就找零給顧客if(mp[5] == 0) return false;else{mp[10]--;mp[5]--;}}else{ //沒有10美元,看看有沒有三張5美元if(mp[5] < 3) return false;else mp[5] = mp[5] - 3;}}}return true;} };?
?
?
總結(jié)
以上是生活随笔為你收集整理的Leetcode 860. 柠檬水找零 解题思路及C++实现的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Leetcode 455. 分发饼干 解
- 下一篇: Leetcode 134. 加油站 解题