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

相关推荐
大锦终6 分钟前
【算法】哈希表专题
c++·算法·leetcode·哈希算法·散列表
乐迪信息6 分钟前
乐迪信息:智慧煤矿视觉检测平台:从皮带、人员到矿车
大数据·人工智能·算法·安全·视觉检测·推荐算法
睡不醒的kun27 分钟前
leetcode算法刷题的第二十三天
数据结构·c++·算法·leetcode·职场和发展·贪心算法
初级炼丹师(爱说实话版)40 分钟前
8.30美团技术岗算法第二题
python·算法
CoovallyAIHub1 小时前
突破闭集限制:3D-MOOD 实现开集单目 3D 检测新 SOTA
深度学习·算法·计算机视觉
阿维的博客日记1 小时前
LeetCode 31. 下一个排列
java·算法·leetcode
1白天的黑夜11 小时前
哈希表-面试题01.02.判定是否互为字符重排-力扣(LeetCode)
c++·leetcode·哈希表
CoovallyAIHub2 小时前
PL-YOLOv8:基于YOLOv8的无人机实时电力线检测与植被风险预警框架,实现精准巡检与预警
深度学习·算法·计算机视觉
凤年徐2 小时前
【数据结构】八大排序之快速排序:分而治之的艺术
c语言·开发语言·数据结构·c++·算法·排序算法
sssvangen2 小时前
拔河(蓝桥杯)(前缀和)
算法·前缀和·职场和发展·蓝桥杯