Still, many people look for “better” way to approach DP problems. This is what these posts are about.

Some theory

Basically, DP is an opportunity to solve a problem of two characteristics: overlapping subproblems and optimal substructure. With this properties in mind we can exchange memory-to-time: run faster with greater memory use.