任务:递归及DP:学习递归思想,动态规划思想,并同时温习前四天内容,做出总结。
递归:
在调用一个函数的过程中,直接或间接地调用了函数本身这个就叫递归。简而言之就是自己调用自己。大概步骤如下:
1、写出临界条件
2、找出这一次和上一次关系
3、假设当前函数已经能用,调用自身计算上一次的结果,再求出本次的结果
递归两个基本要素:
(1) 边界条件:确定递归到何时终止,也称为递归出口。
(2) 递归模式:大问题是如何分解为小问题的,也称为递归体。(动态规划(DP)的整理-Python描述这篇文章就比较通俗易懂)
动态规划(DP):
动态规划程序设计往往是针对一种最优化问题,由于各种问题的性质不同,确定最优解的条件也互不相同,因而动态规划的设计方法对不同的问题,有各具特色的解题方法,而不存在一种万能的动态规划算法,可以解决各类最优化问题。
简而言之,当求解的问题满足以下两个条件时, 就应该使用动态规划:
1.主问题的答案 包含了 可分解的子问题答案 (也就是说,问题可以被递归的思想求解)
2.递归求解时&#x