柠檬水找零

由于题目中只有5元,10元,20元三种票值,当是10元时,只需要一张5元,当是20元时,可以用一张5元和一张10元或者可以用三张5元来找零,但更倾向于用第一种找零方法,因为5元找零的范围更广

因此我们遍历数组中的每一个数,并记录下该纸币的数量,每当需要找零是再减去对应需要的数量即可

代码如下:

class Solution {
public:
    bool lemonadeChange(vector<int>& bills) {
        int five = 0,ten = 0;
        for(auto k : bills)
        {
            if(k == 5)
            {
                five++;
            }
            else if(k == 10)
            {
                if(five>0)
                {
                    five--;
                    ten++;
                }
                else
                return false;
            }
            else if(k == 20)
            {
                if(five >0&&ten>0)
                {
                    five--;ten--;
                }
                else if(five >=3)
                {
                    five-=3;
                }
                else
                return false;
            }
        }
        return true;
    }
};

 

posted @ 2021-01-20 09:51  loliconsk  阅读(89)  评论(0)    收藏  举报