递归满足三个条件
- 一个问题的解可以分为几个子问题的解
- 这个问题与分解后的子问题,除了数据规模不同,求解思路完全一样
- 存在递归终止条件
注意:
1.递归代码要警惕堆栈溢出,解决方式,通过变量限制递归深度,当超过该深度,停止递归并弹出异常。
2.重复计算,解决方式:通过存储已经计算过的值,在计算前进行查询并取出。
3.过多的函数调用,会耗时较多
问题:当我们使用IDE进行单步跟踪进行调试时,如果遇到规模较大,递归层次很深的代码,该如何进行调试呢?
答:
1.打印日志发现,递归值。
2.结合条件断点进行调试。