一个想要了解dynamic规划的人的简单例子

我正在为想学习dynamic规划的人寻找一个可以理解的例子。 这里有很好的答案,关于什么是dynamic编程 。 斐波纳契序列是一个很好的例子,但它太小,不能划伤表面。 虽然我还没有selectalgorithm类,但看起来这是一个很好的学科,希望能在spring上榜。

看看这个网站: dynamic编程实践问题

这是一个很好的教程,包含29个解决DP问题的很好的解释。

dynamic编程背后的想法是,你正在caching(记忆)子问题的解决scheme,但我认为除此之外还有更多。

有许多Google Code Jam问题,因此解决scheme需要dynamic编程才能高效。 例子:

欢迎来到Code Jam(中等)

欺骗一个布尔树(中等)

PermRLE(硬)

请注意Code Jam练习赛每个都有一个“比赛分析”部分,如果你试图解决这个问题的话。

计算Levenshtein距离是我用dynamic规划解决的第一个问题。 我认为就复杂性而言,这是斐波纳契数列的下一步。

http://en.wikipedia.org/wiki/Levenshtein_distance

  1. 极客极客拥有大量的dynamic编程问题。 如果你正在准备面试,我觉得这套是最好的。
  2. 如果您想要关于DP问题的小教程video,您可以检查MIT设置的这个问题。