【贪心算法】柠檬水找零

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

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

相关推荐
小O的算法实验室4 小时前
IEEE TASE,基于MPC的多无人机协同搜索竞争群体优化方法
算法
Tbisnic4 小时前
BGE-M3 算法详解:从模型架构到三种检索方式的数学原理
算法·自然语言处理·大模型·bert·transformer·注意力机制
Brilliantwxx5 小时前
【算法从零到千】【55-58】哈希位图+常见数学运算 接口
算法
空堂与归6 小时前
用户分群找不到规律?用K-Means聚类算法自动发现数据模式
算法·机器学习·kmeans·聚类
动词ing6 小时前
【C语言】自定义函数+指针入门
c语言·开发语言·算法
重生之后端学习6 小时前
283. 移动零[简单]✅
开发语言·数据结构·算法·leetcode·职场和发展
一只小小的芙厨7 小时前
基础数论总结
笔记·学习·算法
夜不会漫长8 小时前
C++入门(1)
开发语言·c++·算法
wen_zhufeng9 小时前
IndexTTS 2.5 技术报告
人工智能·算法·机器学习
大熊背10 小时前
树莓派相机自动白平衡详解(四)
算法·树莓派·白平衡·isppipeline