贪心算法与回溯算法、动态规划的区别

「解决一个问题需要多个步骤,每一个步骤有多种选择」这样的描述我们在「回溯算法」「动态规划」算法中都会看到。它们的区别如下:

对于不同的求解目标和不同的问题场景,需要使用不同的算法。动态规划与贪心算法的区别,我们画在下面这张图里。

Untitled

Untitled

可以使用「贪心算法」的问题需要满足的条件

对「最优子结构」和「无后效性」的理解同「动态规划」,「贪心选择性质」是「贪心算法」最需要关注的内容。

<aside> 📌 能用贪心算法的一定能用动态规划,能用动态规划的不一定能用贪心算法。

</aside>