To Iterate is Human, to Recurse, Divine.
人理解迭代,神理解递归。下面我们来体验一下做神的感觉!
一般来讲,能用递归来解决的问题必须满足两个条件:
- 可以通过递归调用来缩小问题规模,且新问题与原问题有着相同的形式。
- 存在一种简单情境,可以使递归在简单情境下退出。
可以这样理解,递归就是有去(递去)有回(归来)。
分析递归问题的关键点:
- 设计递归体的目标,即递归到底求的是什么。
- 划分问题,对子问题调用递归函数求出结果,然后利用这个结果求原问题的解(即如何利用递归的结果)
- 考虑清楚递归退出的边界条件。(即何时退出递归过程)
参考
人脑理解递归
漫谈递归:递归的思想