LeetCode89:柠檬水找零

题目描述

在柠檬水摊上,每一杯柠檬水的售价为 5 美元。顾客排队购买你的产品,(按账单 bills 支付的顺序)一次购买一杯。

每位顾客只买一杯柠檬水,然后向你付 5 美元、10 美元或 20 美元。你必须给每个顾客正确找零,也就是说净交易是每位顾客向你支付 5 美元。

注意,一开始你手头没有任何零钱。

给你一个整数数组 bills ,其中 bills[i] 是第 i 位顾客付的账。如果你能给每位顾客正确找零,返回 true ,否则返回 false 。


代码

cpp 复制代码
class Solution {
public:
    bool lemonadeChange(vector<int>& bills) {
        int _5Num=0;
        int _10Num=0;
        if (bills[0] == 10 || bills[0] == 20 || bills[1] == 20) return false;

        for (int bill:bills) {
            if (bill == 5) ++_5Num;

            else if (bill == 10) {
                if (_5Num == 0) return false;
                ++_10Num;
                --_5Num;
                
            }

            else if (bill == 20) {
                if (_10Num > 0 && _5Num>0) {
                    --_10Num;
                    --_5Num;
                }
                else if(_5Num>=3){
                    _5Num -= 3;   
                }
                else {
                    return false;
                }
            }
        }
        return true;
    }
};
相关推荐
迷迭所归处9 分钟前
C++ —— 关于vector
开发语言·c++·算法
leon62539 分钟前
优化算法(一)—遗传算法(Genetic Algorithm)附MATLAB程序
开发语言·算法·matlab
CV工程师小林39 分钟前
【算法】BFS 系列之边权为 1 的最短路问题
数据结构·c++·算法·leetcode·宽度优先
Navigator_Z1 小时前
数据结构C //线性表(链表)ADT结构及相关函数
c语言·数据结构·算法·链表
还听珊瑚海吗1 小时前
数据结构—栈和队列
数据结构
Aic山鱼1 小时前
【如何高效学习数据结构:构建编程的坚实基石】
数据结构·学习·算法
white__ice2 小时前
2024.9.19
c++
天玑y2 小时前
算法设计与分析(背包问题
c++·经验分享·笔记·学习·算法·leetcode·蓝桥杯
姜太公钓鲸2332 小时前
c++ static(详解)
开发语言·c++
菜菜想进步2 小时前
内存管理(C++版)
c语言·开发语言·c++