一个想要了解动态编程的人的简单示例[关闭]


96

我正在为想学习动态编程的人寻找一个易于理解的示例。关于什么是动态编程,这里有很好的答案。斐波那契数列是一个很好的例子,但它太小而无法刮擦表面。尽管我还没有上算法课,但看起来这是一个很棒的主题,希望它会在我春季的清单上。

Answers:


30

查看此站点:动态编程实践问题


1
MITvideo.mit.edu/watch/…看本讲座,然后解决以上问题,将帮助您理解DP为什么有用。
pg2286

例如,评论中的youtube链接已损坏。新链接:youtube.com/watch?
v

看看这组视频,我发现它非常直观地涵盖了算法的自上而下和自下而上的方面:youtube.com/playlist?
list=PLx

看起来MIT将其内容从主页移至MIT OpenCourseWare页面,因此提供的链接@ pg2286无效。现在的链接为19。动态编程I完整的播放列表也提供算法介绍
rite2hhh


7

动态编程背后的想法是,您正在缓存(记忆)子问题的解决方案,尽管我认为这还不止于此。

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

欢迎使用Code Jam(中等)

作弊布尔树(中等)

PermRLE(硬)

请注意,每个Code Jam练习竞赛都有一个“竞赛分析”部分,供您在尝试解决问题时感到困惑时。


感谢您的资源。我不时地从项目欧拉那里解决一两个问题,似乎我真的陷入了一些需要DP知识的问题。
AraK

5
  1. 怪才怪才有很大的集合的动态规划问题。如果您准备面试,我觉得这是最好的一套。
  2. 如果您需要有关DP问题的小型教程视频,可以从MIT 检查问题集。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.