在学习动态规划之前, 我们先复习一下之前学过的递推和递归。
从程序上看,递归表现为自己调用自己,它通常把一个大型复杂的问题层层转化为一个与原问题相似的规模较小的问题来求解,递归策略只需少量的程序就可描述出解题过程所需要的多次重复计算,大大地减少了程序的代码量。
递归是从问题的最终目标出发,逐渐将复杂问题化为简单问题,最终求得问题。递推则是由已知答案推出要求的问题。