什么样的问题可以用递归解决
- 可以将一个问题分解成若干子问题
- 主要问题和子问题之间的处理过程是一样的。
- 存在递归终止条件
如何写一个递归程序
- 分解问题,推导出递推公式
- 找到程序的出口,即递归结果
递归程序的注意事项
- 防止堆栈溢出–增加深度的参数
- 防止重复计算–增加散列表等方式记录计算结果如果有计算结果直接返回
例子:斐波那契数列
1 | private Map<Integer, Long> map = new HashMap<>(); |
杂七杂八
例子:斐波那契数列
1 | private Map<Integer, Long> map = new HashMap<>(); |