栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

掌握递归编程

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

掌握递归编程

递归只是迭代的一种思考方式。当我们还是个孩子的时候,我们没有被教导要进行递归思考,而这才是真正的问题所在。您需要将这种思维方式整合到您的武库中,一旦这样做,它将永远存在。

掌握的最佳方法:

我发现始终先找出基本案例很有用,也许一开始它们不是最简单的案例,但是一旦您开始在该基本案例之上构建递归,您就会意识到您可以简化它。识别基本情况的重要性在于,首先,您要专注于最简单形式需要解决的问题(更简单的情况),从而以某种方式为将来的算法绘制路线图,其次,请确保算法
停止 。也许没有返回预期的结果,但至少停止了,这总是令人鼓舞的。

此外,它始终可以帮助您找出问题的小实例将如何帮助您找到问题的大实例的解决方案。例如,这就是您如何为

n
已有输入法的解决方案构建输入法的解决方案
n-1

递归解决每个您想到的问题 。是的,河内塔楼不是一个很好的例子,它的递归解决方案是一个 非常聪明的解决方案 。尝试更简单的问题,几乎是基本问题。

问题清单

  1. 数学运算:运算 和您可以想到的每个数学运算。
  2. 字符串处理: 回文是一个很好的练习。在网格中查找单词也很有用。
  3. 了解树数据结构: 特别是IMO最佳培训。树是递归数据结构。了解它们的遍历(顺序,后序,预序,计算其高度,直径等)。几乎所有对树状数据结构的操作都是一项很好的练习。
  4. 组合问题: 非常重要,组合,排列等。
  5. 寻路: 李氏算法,迷宫算法等

但最重要的是, 从简单的问题开始
。几乎每个问题都有一个递归解决方案。数学问题很容易理解。每次看到一个

for
或多个
while
循环时,都将该算法转换为递归。

程式语言

函数式编程在很大程度上依赖于递归。我不认为这会有所帮助,因为它们本质上是递归的,并且对于还不太了解递归的用户可能会很麻烦。

使用一种最简单的编程语言,一种您最熟悉的语言,最好是一种不会使您烦恼很多内存烦恼和指针的语言。我认为Python是一个非常好的开始。非常简单,不会打扰您输入或复杂的数据结构。只要该语言帮助您仅专注于递归,它就会更好。

最后一个建议是,如果您找不到问题的解决方案,请在Internet上搜索或寻求帮助,全面 了解
问题的根源,然后再寻求其他建议。不要让他们绕过您,因为您想要做的就是 将这种思维方式融入您的头脑

掌握递归 ,您需要先 掌握递归 :)

希望这可以帮助!



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/418395.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号