柠檬水找零【贪心1】

由于是贪心算法的第一道题,所以先介绍一下贪心算法。

贪心策略:一种解决问题的策略,局部最优->全局最优。(贪婪+鼠目寸光)

1、把解决问题的过程分为若干步

2、解决每一步时,都选择当前看起来最优的解法。

3、"希望"得到全局最优解。

特点:

没有模版,只能是积累经验,心态放平。

贪心算法的正确性需要证明。

柠檬水找零

题目

代码

cpp 复制代码
class Solution {
public:
    bool lemonadeChange(vector<int>& bills) {
        int n = bills.size();
        int five_nums = 0,ten_nums = 0;
        for(int i = 0;i < n;i++){
            if(bills[i] == 5)
            {
                five_nums++;
            }
            else if(bills[i] == 10)
            {
                if(five_nums == 0) return false;
                five_nums--;
                ten_nums++;
            }
            else
            {
                if(ten_nums && five_nums)
                {
                    ten_nums--;
                    five_nums--;
                }
                else if(five_nums >= 3)
                {
                    five_nums -= 3;
                }
                else return false;
            }
        }
        return true;
    }
};

证明

相关推荐
计算机安禾几秒前
【Linux从入门到精通】第12篇:进程的前后台切换与信号控制
linux·运维·算法
6Hzlia3 分钟前
【Hot 100 刷题计划】 LeetCode 84. 柱状图中最大的矩形 | C++ 两次单调栈基础扫法
c++·算法·leetcode
C雨后彩虹12 分钟前
文件目录大小
java·数据结构·算法·华为·面试
0南城逆流015 分钟前
【技术点】嵌入式技术考点三:数据结构
java·数据结构·算法
罗湖老棍子15 分钟前
Beads(信息学奥赛一本通- P1461) [POI 2010] KOR-Beads(洛谷-P3498)
算法·字符串·哈希
paeamecium16 分钟前
【PAT甲级真题】- Favorite Color Stripe (30)
数据结构·c++·算法·pat
DeepModel20 分钟前
机器学习数据预处理:特征构造
人工智能·学习·算法·机器学习
棋子入局24 分钟前
C语言实现消消乐游戏(6)
c语言·算法·游戏
Mem0rin31 分钟前
[Java]排序
java·算法·排序算法
qeen871 小时前
【算法笔记】差分与经典例题解析
c语言·c++·笔记·学习·算法·差分