【贪心算法】柠檬水找零

1.题目解析

860. 柠檬水找零 - 力扣(LeetCode)

2.讲解算法原理

分情况讨论

5---》直接收下

10---》找五元,收下

20----》10+5△

----》5+5+5

由于5元更有用,则尽可能保留5元

3.代码

java 复制代码
class Solution {
    public boolean lemonadeChange(int[] bills) {
        int five=0,ten=0;
        for(int x:bills){
            if(x==5){
                five++;
            }else if(x==10){
                if(five==0){
                    return false;
                }else{
                    five--;
                    ten++;
                }
            }else{
                if(ten!=0&&five!=0){
                    ten--;
                    five--;
                }else if(five>=3){
                    five-=3;
                }else{
                    return false;
                }
            }
        }
        return true;
    }
}

4.证明

证明策略:交换论证法

贪心解:a,b,c,d,e,f

最优解:e,b,c,d,a,f

在不破坏最优解的"最优性质"的前提下,能够将最优解调整成贪心解

相关推荐
维克兜率天40 分钟前
【维克】指数调整:哪些股票会被“强制买入“?
人工智能·python·算法
罗西的思考1 小时前
【轻量化复刻大模型】线性注意力交互式演示
人工智能·算法·机器学习
神也畏惧菠萝1 小时前
Day08 Python流程控制从入门到上瘾:if/match/while/for四件套,从B站登录一路打到猜数字游戏
python·算法·数据存储·for·while·if·ifelse
揽星河..2 小时前
【C语言】分支和循环
c语言·c++·算法
Fuyo_11193 小时前
C++ AVL树保姆级详解:从平衡因子到四大旋转机制
java·c++·算法
jktantan4 小时前
每个节点 41 字节:把一棵百万节点树拆进 14 个 typed array
前端·javascript·vue.js·算法·typescript
揽星河..4 小时前
【C语言】猜数字游戏
c语言·算法·游戏
LabVIEW开发5 小时前
CTM-3 红外测温仪 + LabVIEW 温度怎么测?
算法·labview·测试·labview程序
纪念 2295 小时前
C++算法(六)
开发语言·c++·算法