【贪心算法入门第一题——860.柠檬水找零】

引言

1.题目解析

题目来源

测试用例

2.算法原理

3.实战代码

4.贪心策略正确性的证明


引言

首先贪心算法与大部分算法不同的是,贪心算法不是只需要掌握核心模版就可以解决所有问题的一种算法,与其说贪心是一种算法不如说是一种贪心策略,每一道题都可以使用不同的贪心策略,所以贪心算法也是一种学无止境的算法
贪心算法的底层原理是->局部最优推导到全局最优

1.把原始问题分为若干步,解决每一步问题

2.解决每一步时都需要选择解决当前步的最优方案

3."希望"找到全局最优解

4.贪心策略是没有模板的,每一道题都可能是不同的贪心策略

5.贪心策略的正确性需要被证明,否则贪心策略可能是错误的(证明方法就是数学中的证明方法)

1.题目解析

题目来源

|----------------------------------------------------------------------------------------|
| 860.柠檬水找零------力扣 |

测试用例

2.算法原理

3.实战代码

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

4.贪心策略正确性的证明

相关推荐
咸鱼翻身小阿橙1 分钟前
高斯模糊降噪/磨皮算法降噪图像
前端·opencv·算法·webpack·c#
SPC的存折6 分钟前
Redis完整学习手册(赵老师视频精华版)
redis·学习·音视频
代码中介商7 分钟前
数据结构进阶(五):最短路径——Dijkstra 与 Floyd 算法
数据结构·算法
casual~8 分钟前
【学习记录(2)】
c++·学习
fengxin_rou8 分钟前
LeetCode链表经典五题:从相交到环形,双指针的妙用
算法·leetcode·链表
KaMeidebaby9 分钟前
卡梅德生物技术快报|抗原如何自己检测?FAdV-4 重组抗原制备与 ELISA 体系技术调试指南
前端·人工智能·物联网·算法·百度
却道天凉_好个秋12 分钟前
HEVC(二):如何实现并行处理
人工智能·算法·计算机视觉·hevc·瓦片技术·波前并行处理wpp
wayz1113 分钟前
Momentum:QQE(定量定性估计)技术指标详解
算法·金融·数据分析·量化交易·特征工程
Dontla15 分钟前
聚类找不到簇原因分析(聚类失败)(DBSCAN聚类算法、eps参数、Epsilon参数、最大允许距离)
算法·数据挖掘·聚类
写代码写到手抽筋8 小时前
5G上行DCI字段判定:端口 流数 PMI选择详解
java·算法·5g