递归
一、符合运用递归的条件: 能够将大问题进行分解为各个类似的小问题 各个小问题的解法类同与大问题 有问题终止的条件 二、递归代码的写法: 先推导出数学公式 找到终止条件 基于此写代码 三、递归代码注意事项: 警惕堆栈溢出: 因为不停的函数调用,建立方法栈,若无终止条件,或者超出栈内存,则会溢出 解决方案: 1)确立的正确终止条件 2)限制递归调用的深度,即建立调用深度计数器。 递归中函数值的重复计算: 如:f(4) 可能会被重复计算好几次 解决方案: 用散列表存储函数的值,在每次计算之前查询。 递归代码的调试方法: 因为对于规模较大,层次较深的递归代码,如果仅仅单步调试会非常麻烦困难。 解决方案: 1)日志输出每个阶段的值 2)结合条件断点进行调试 来源: CSDN 作者: alone away 链接: https://blog.csdn.net/quanzywy/article/details/104106355