用于动态规划的算法和数据结构学习资源

时间:2009-11-12 10:46:48

标签: algorithm resources dynamic-programming

我现在正在学习动态编程,虽然我很了解这个理论,但为新问题设计DP算法仍然很困难。

这就是我现在真正想要的 - 一本书或一个网站,它提出了一个可以通过动态编程解决的问题。还有一个解决方案,有一个解释,我想看看,如果我不能解决问题,即使在我的头几个小时后。是否有一些资源可以为几类算法提​​供这类功能 - 如图算法,动态编程等?

P.S。我考虑过Topcoder,但那里的解决方案并不适合学习实施有效的解决方案。

4 个答案:

答案 0 :(得分:4)

任何ACM比赛问题集都可能有用。有些地方可以找到这样的:

答案 1 :(得分:1)

使用动态编程可以优雅地解决Project Euler中的许多问题。

答案 2 :(得分:1)

我有点不同意TopCoder上的解决方案不是良好做法的例子。顶级用户提交的解决方案通常非常简单,不一定非常有效,只是足够有效。真正重要的是代码非常短,这使得很多更容易理解,特别是如果您还不知道解决方案。

我不建议以相同的方式编写普通程序,但它绝对可以教你一些关于过度工程的东西。我已经在Java中看到了使用自定义迭代器,比较器等的解决方案,并且它们更难理解,即使算法本身很简单。

我曾经读过保罗·格雷厄姆的an essay,他说,代币较少的程序更容易理解。 TopCoder让我确信这是真的,至少在某些领域是这样。

答案 3 :(得分:0)

http://www.topcoder.com
在这里,您将找到各种难度级别的所有类型的问题。