Skip to content

递归,很重要!

遇到一个问题,容易想到使用递归来做

但是一个递归函数,到底应该怎么设计呢?

递归的特征
  • 执行范围不断缩小
  • 终止条件判断在递归调用之前 (在执行递归之前,一定会有一个终止条件)
递归三要素
  1. 终止条件:用于决定什么时候由“递”转“归”
  2. 递归调用:对应“递”,函数调用自身,通常输入更小或更简化的参数
  3. 返回结果:对应“归”,将当前递归层级的结果返回至上一层
核心原则

【明确递归状态】

递归函数的参数的本质是在递归过程中需要维护的状态信息。设计时需要回答:

  • 当前递归需要知道什么?
  • 当前递归需要向下传递什么?
递归解决问题的代码示例

演示代码