递归:去的过程叫“递”,回来的过程叫“归”
满足条件:
1、一个问题的解可以分解为几个子问题的解
2、这个问题与分解之后的子问题,除了数据规模不同,求解思路一致
3、存在递归终止条件(不能无限循环)
如何写出递归代码
1、基于规律写出递推公式
2、推敲终止条件
3、将递推公式和终止条件翻译成代码
注意事项:
1、警惕堆栈溢出(在代码中使用全局变量保证执行次数)
2、警惕重复计算(将执行过的函数的结果,存放在散列表里,key为参数,value为返回值)
递归:去的过程叫“递”,回来的过程叫“归”
满足条件:
1、一个问题的解可以分解为几个子问题的解
2、这个问题与分解之后的子问题,除了数据规模不同,求解思路一致
3、存在递归终止条件(不能无限循环)
如何写出递归代码
1、基于规律写出递推公式
2、推敲终止条件
3、将递推公式和终止条件翻译成代码
注意事项:
1、警惕堆栈溢出(在代码中使用全局变量保证执行次数)
2、警惕重复计算(将执行过的函数的结果,存放在散列表里,key为参数,value为返回值)