想要了解动态编程的人的简单示例

时间:2009-10-08 22:25:54

标签: algorithm dynamic-programming

我正在为想要学习动态编程的人寻找一个易于理解的例子。 There are nice answers here about what is dynamic programming。斐波那契序列是一个很好的例子,但它太小而不能划伤表面。虽然我还没有参加算法课程,但它看起来是一个很好的主题,希望它在我的春季名单上。

5 个答案:

答案 0 :(得分:28)

答案 1 :(得分:19)

Here is a good tutorial包含29个已解决的DP问题,并有很好的解释。

答案 2 :(得分:7)

动态编程背后的想法是你正在缓存(memoizing)子问题的解决方案,尽管我认为还有更多的问题。

Google Code Jam存在许多问题,因此解决方案需要动态编程才能提高效率。例子:

Welcome to Code Jam (moderate)

Cheating a Boolean Tree (moderate)

PermRLE (hard)

请注意,每个Code Jam练习比赛都会有一个“比赛分析”部分,如果您难以尝试解决问题。

答案 3 :(得分:5)

  1. Geeks for geeks有很好的collection动态编程问题。如果你准备面试,我觉得这套装置是最好的之一。
  2. 如果您想了解有关DP问题的小型教程视频,可以查看麻省理工学院的this问题集。

答案 4 :(得分:4)

计算Levenshtein距离是我用动态规划解决的第一个问题之一;我认为从复杂性来看,斐波那契序列是一个不错的下一步。

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