LeetCodeSolution

动态规划是一种常用的解决问题的办法。它的主要作用是减少重复计算, 而不是给你解题带来启发。减少重复计算的办法是记录子问题的解而避免了 子问题的重复求解。使用动态规划,首先要做的是找到状态转移 方程。有了状态转移方程以后,递归解法自然就已经有了。 所谓状态转移方程,就是如何由子问题的解得到原问题解的一个过程。

至于怎么划分子问题,以及如何得到状态转移方程,我并没有找到什么有章可循 的办法。更多地靠直觉和经验吧。

通常在递归的数据结构上的问题,都可以用动态规划求解,如tree, graph, array, string, list等。