算法问题中的贪心思想,贪心算法入门题目(不断更新)

什么是贪心算法思想

贪心算法的思想是每一步选择当前状态下最优的决策,并不考虑之后的结果,以期达到全局最优解的算法思想。

具体来说,贪心算法通常包括以下几个步骤:

确定问题的贪心策略,即每一步应该采取哪种决策。

利用贪心策略,将问题分解为若干个子问题。

对于每个子问题,使用贪心策略进行求解。

将子问题的解组合起来,得到原问题的解。

需要注意的是,贪心算法并不能保证一定能够得到全局最优解,但是对于一些具有贪心性质的问题,贪心算法通常能够得到比较优秀的近似解。此外,贪心算法通常具有时间复杂度较低的优点。

举个例子:

  • 例如,有一堆钞票,你可以拿走十张,如果想达到最大的金额,你要怎么拿?

  • 指定每次拿最大的,最终结果就是拿走最大数额的钱。每次拿最大的就是局部最优,最后拿走最大数额的钱就是推出全局最优。

  • 再举一个例子如果是 有一堆盒子,你有一个背包体积为n,如何把背包尽可能装满,如果还每次选最大的盒子,就不行了。这时候就需要动态规划。关于动态规划的思想,你可以看我的这篇文章:算法问题中的动态规划思想,动态规划入门题目(不断更新)

贪心算法入门题目

  • 《程序员面试金典(第6版)》面试题 05.03. 翻转数位(贪心算法思想,C++)

你可能感兴趣的:(算法题解析与个人做题技巧总结,算法,贪心算法,数据结构)