递归
递归简介
把规模大的问题转化为规模小的相似子问题来处理,子问题要有明显的结束条件。所有的所有的递归问题都可以用递归公示来表示。
递归需要满足的条件
1、一个问题的解可以拆分为几个子问题的解
2、这个问题与分解之后的子问题,除了数据规模不同,求解思路完全相同
3、存在递归终止条件
递归优缺点
优点:代码表达能力强,简介
缺点:
1、空间复杂度高
2、堆栈溢出风险,可记录堆栈深度,达到一定时抛出异常
3、存在重复计算,利用散列表揭露某个字问题的解
4、过多的函数计算会耗时较多
如何写递归代码
写出递推公式,找出终止条件。