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

相关推荐
库奇噜啦呼7 分钟前
【iOS】源码学习-锁的原理
学习·ios·cocoa
湖南天硕国产SSD11 分钟前
工业存储可靠性进阶:天硕工业固态硬盘动态温控与寿命优化技术实践
网络·数据库·算法·工业存储·天硕存储·工业固态硬盘
_李小白11 分钟前
【android opencv学习笔记】Day 33: 直线检测之图像轮廓检测
android·opencv·学习
legend050709ComeON11 分钟前
常见面试题-leetcode
数据结构·算法·leetcode
AI_零食14 分钟前
HarmonyOS 表单验证机制深度解析与实践
学习·华为·harmonyos·鸿蒙·鸿蒙系统
Smilecoc21 分钟前
决策树(一):决策树基本原理
算法·决策树·机器学习
weixin_3077791323 分钟前
从工具到协作者:AI在后端研发中的流程重构与组织赋能
人工智能·后端·python·算法·自动化
云草桑26 分钟前
.NET10+AI 架构师全套实战学习文档(含源码、案例、面试题、项目源码)
人工智能·学习·ai·.net
沉下去,苦磨练!33 分钟前
深度学习神经网络的搭建
人工智能·算法
暗夜猎手-大魔王37 分钟前
hermes源码学习5-Provider 运行时解析
大数据·人工智能·学习