递归:如何用三行代码找到推荐人

如何理解递归

递归需要满足的三个条件

1,一个问题的解可以分解为多个子问题的解
2,这个问题和子问题处理数据规模不同,求解思路完全相同
3,存在递归终止条件

如何编写递归代码

1,写出递推公式
2,找到终止条件

关键是找到如何将大问题分解成小问题的规律,并基于此规律写出递推公式,然后在推敲终止条件,最终将递推公式和终止条件编写成代码

递归代码要警惕堆栈溢出

递归超过一个深度就不在递归下去,抛出异常

递归代码要警惕重复计算

可以通过散列表来保存已经求解过的内容,如果是重复计算那么直接取出值不在计算即可

递归代码要警惕过多的递归调用导致的导致消耗较多的情况

怎么将递归代码改写成非递归代码

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 如何理解递归 递归是一种非常广泛的算法。涉及到的算法有DFS深度优先搜索,前中后序二叉树遍历等 递归,去的过程叫做...
    胖琪的升级之路阅读 243评论 0 0
  • 这节课的思路主要是如何理解递归 --> 递归的三个条件 --> 如何编写递归 --> 递归要注意的点 --> 怎么...
    wean_a23e阅读 339评论 0 0
  • 我从这里走过, 我用心去寻找,看到影子。闻到沁香。一阵风吹过,却还是车马笼头,人来人往,故事没有发生,生活的旋律却...
    8532b7bc93b9阅读 273评论 4 1
  • 雁儿归, 叶儿落, 鹊儿搭桥, 你我相识。 遇见你, 风花雪月的刹那芳华, 咋及的上你那浅笑嫣然。 遇见你, 高山...
    三兔3t阅读 162评论 0 0
  • 亲爱的CC:你好! 每周肖肖老师的课后作业,都有一篇看图说话,平时都是爸爸帮你一起完成。今天刚好爸爸没空,你就找我...
    Leice阅读 236评论 0 0