There is a kind of problem in the real problem which is suitable for solving with the idea of dynamic programming, which has a notable feature of seeking "maximum xxx" and "Minimum xxx", which is to solve the problem of optimization. Usually this kind of problem can find a recursive formula of recursion definition, but the key to solve the problem with dynamic programming is the discovery and definition of this recursive formula effectively and gracefully.
Although recursive formulas are defined recursively, the implementation is implemented using iterations and a lookup table to avoid recursion, which can significantly reduce the amount of code and thus reduce the chance of errors.
There are two blogs that are good,
Http://www.hawstein.com/posts/dp-novice-to-advanced.html
Http://www.cnblogs.com/kkgreen/archive/2011/06/26/2090702.html
Characteristics and ideas of dynamic programming