【算法】贪心算法:柠檬水找零C++

文章目录

前言

题目的链接,大家可以先试着去做一下再来看一下思路。 860. 柠檬水找零 - 力扣(LeetCode)

题目解析

首先我们要认真去拿到题目中的关键有用信息。

认真的去阅读题目给的示例,然后去推出其他的示例的情况。

算法原理

代码示例

cpp 复制代码
class Solution {
public:
    bool lemonadeChange(vector<int>& bills) {
        int five = 0, ten = 0;//我们用来记录5元和十元的张数
            for(auto x : bills)
                {
                    if(x == 5) five++;
                    else if(x == 10)
                    {
                        if(five == 0) return false;
                        five--; ten++;
                    }
                    else
                    {
                        if(ten && five) 
                            ten--,five--;
                        else if(five >= 3)
                            five-=3;
                        else
                            return false;
                    }
                }
        return true;
    }
};

策略证明

证明方法:交换认证法