递归

递归简介

把规模大的问题转化为规模小的相似子问题来处理,子问题要有明显的结束条件。所有的所有的递归问题都可以用递归公示来表示。

递归需要满足的条件

1、一个问题的解可以拆分为几个子问题的解

2、这个问题与分解之后的子问题,除了数据规模不同,求解思路完全相同

3、存在递归终止条件

递归优缺点

优点:代码表达能力强,简介

缺点
1、空间复杂度高

2、堆栈溢出风险,可记录堆栈深度,达到一定时抛出异常

3、存在重复计算,利用散列表揭露某个字问题的解

4、过多的函数计算会耗时较多

如何写递归代码

写出递推公式,找出终止条件。