构建递归函数的一般技巧是什么



所以我知道什么是递归函数,但每次我有一个任务看起来递归是可行的,我都不知道从哪里开始。思考如何解决这个问题有哪些好方法?例如,我应该从最后一种情况场景(导致递归停止的场景(还是从第一种情况场景开始?

任何解释该方法的参考文献或指南(与递归本身相反(都会有所帮助。或者可能没那么难,我只是想得太多了。

递归通常是通过将问题划分为子问题来解决问题,直到达到基本情况(或者如您所说,"最后一个"情况(。一旦有了基本情况和一般情况,就解决了递归问题。

一般情况通常比较棘手。对于某些问题,它可能更明显,但一个好的策略是从你能想到的最简单的输入开始(这可能是你的基本情况(,然后逐步增加到更复杂的输入。

例如,如果你想以某种方式递归处理一个非空数组,你首先要解决长度为1的数组的问题,然后是长度为2的数组,等等,直到你看到一般的解决方案。

实践往往是最有帮助的。看看示例问题的解决方案(在自己尝试之后(,直到你对它有更好的感觉。祝你好运!

最新更新