如何理解递归
递归需要满足的三个条件
1,一个问题的解可以分解为多个子问题的解
2,这个问题和子问题处理数据规模不同,求解思路完全相同
3,存在递归终止条件
如何编写递归代码
1,写出递推公式
2,找到终止条件
关键是找到如何将大问题分解成小问题的规律,并基于此规律写出递推公式,然后在推敲终止条件,最终将递推公式和终止条件编写成代码
递归代码要警惕堆栈溢出
递归超过一个深度就不在递归下去,抛出异常
递归代码要警惕重复计算
可以通过散列表来保存已经求解过的内容,如果是重复计算那么直接取出值不在计算即可