我正在为想学习动态编程的人寻找一个易于理解的示例。关于什么是动态编程,这里有很好的答案。斐波那契数列是一个很好的例子,但它太小而无法刮擦表面。尽管我还没有上算法课,但看起来这是一个很棒的主题,希望它会在我春季的清单上。
我正在为想学习动态编程的人寻找一个易于理解的示例。关于什么是动态编程,这里有很好的答案。斐波那契数列是一个很好的例子,但它太小而无法刮擦表面。尽管我还没有上算法课,但看起来这是一个很棒的主题,希望它会在我春季的清单上。
Answers:
查看此站点:动态编程实践问题
这是一个很好的教程,包含29个已解决的DP问题,并提供了很好的解释。
动态编程背后的想法是,您正在缓存(记忆)子问题的解决方案,尽管我认为这还不止于此。
Google Code Jam存在很多问题,因此解决方案需要动态编程才能有效。例子:
请注意,每个Code Jam练习竞赛都有一个“竞赛分析”部分,供您在尝试解决问题时感到困惑时。
计算Levenshtein距离是我通过动态编程解决的第一个问题。就复杂性而言,我认为这是斐波那契数列中不错的下一步。