贪心算法|【简介】

写在前面:

贪心算法是要持续去学习的,其他算法学完之后,就可以做别的题,而贪心算法不是,需要一直去学习,碰见新的题型很正常。

什么是贪心算法?

贪心算法是解决问题的策略,也就是解决问题的方法。这个方法就是利用局部最优的方法推出全局最优。

1.把解决问题的方法分成若干步。然后分布去解决问题。

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

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

看见这三步的时候,我会有两个问题,

1.怎么选择当前看起来"最优的"解法。

2.为什么是"希望"得到全局最优解,而不是得到全局最优解

接下来举例子

1.找零钱问题

我们现在是老板,假设我们有无限个面值为20,10,5,1的纸币,现在要求我们用最少的张数的纸币去找零。

顾客用50块钱来买4块钱的东西,我们需要找零46.

找零的时候我们肯定是一步一步给你找零钱,这个一步一步找零钱也就相当于我们的第一步将这个问题分成若干个小问题。第二步是,要选择当前看起来"最优的"解法。,就是要用最快凑够这46块钱,因此最优解法,应该是用小于当前钱数的最大的面值去找零。

第一步,46,用最大的面值用来找零,也就是20的面值来找钱,剩下26;

第二步, 剩下26 ,还是用最大的面值用来找零,也就是20的面值,剩下6;

第三步,剩下6,用最大的面值的用来找零,5的面值,剩下1;

第四步,剩下1,用最大的面值用来找零,1的面值,剩下0;

相关推荐
青少儿编程课堂2 小时前
蓝桥杯青少组图形化 + 全国青少年信息素养大赛 + 电子学会图形化考级:校园大富翁经营闯关解析
c++·python·算法·bfs·信息学竞赛
在所不辞兄3 小时前
为什么在新能源汽车电驱与热管理开发中,AI驱动的数字孪生和数据驱动仿真正在部分替代对物理台架与实车标定的依赖?
人工智能·深度学习·神经网络·算法·机器学习
I_belong_to_jesus13 小时前
C++关于分支预测的优化1
开发语言·c++·算法
Code_Solitude20 小时前
C语言动态内存 + 柔性数组 + 数组名退化
c语言·算法·柔性数组
上海潭龙东海科技有限公司20 小时前
客运站管控之动态孪生技术方案(新增一屏管控模块
数据仓库·人工智能·算法·重构·动态规划
YLCHUP1 天前
【思维&图论建模】题解:债权(debt)_图论_建模_思路转化_思维题目_C++算法竞赛
c++·笔记·算法·数学建模·贪心算法·深度优先·图论
思麟呀1 天前
背包DP(01背包+完全背包)
c++·算法
笑容掩饰我的失落1 天前
区块链从小白到精通(七):Solidity 语法精讲——数据类型、函数、修饰器与事件
算法·区块链·php·智能合约·哈希算法
Pniubi1 天前
力扣24. 两两交换链表中的节点(递归)
算法·leetcode·链表