【贪心算法入门第一题——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.贪心策略正确性的证明

相关推荐
Eward-an7 分钟前
LeetCode 76. 最小覆盖子串(详细技术解析)
python·算法·leetcode·职场和发展
guygg8810 分钟前
基于ADMM的MRI-PET高质量图像重建算法MATLAB实现
开发语言·算法·matlab
moonlight030413 分钟前
类加载子系统
java·jvm·算法
baivfhpwxf202319 分钟前
ACS X轴回零程序 项目实战版
网络·数据库·算法
盐水冰28 分钟前
【Redis】学习(2)Redis常见命令
数据库·redis·学习
一叶落43832 分钟前
LeetCode 219. 存在重复元素 II(C语言详解)
算法·哈希算法·散列表
adore.96834 分钟前
3.13 复试学习
学习
像污秽一样35 分钟前
算法设计与分析-习题2.4
数据结构·算法·排序算法
不想看见40436 分钟前
Reverse Bits位运算基础问题--力扣101算法题解笔记
笔记·算法·leetcode
SteveSenna40 分钟前
机械臂模仿学习2.3:生成式对抗模仿学习GAIL
学习