美文网首页
递归介绍

递归介绍

作者: 你弄啥来 | 来源:发表于2021-05-13 23:03 被阅读0次

使用递归时需要满足的条件

1 解决该问题需要分解成几个子问题
2 分解后的子问题的解决思路除了数据规模不同,求解思路完全一样。
3 将问题分解成子问题,子问题又可以分解成子子问题并且要存在终止条件。

举例:

1 去电影院看电影,如果你不知道自己目前所处第几排,你可以询问前面一排是第几排,前面一个还不知道自己是第几排,可以继续往前问,一直问道第一排。让后第一排的人告诉问他的人,最终知道你所处的第几排。公式为 f(n) = f(n-1)+1,f(n) 表示最终结果,f(n-1)前面一个人在第几排再加1,终止条件f(1)=1
代码入下:

    public static Integer calculateCol(Integer n){
        if(n==1) return 1;
        return calculateCol(n-1)+1;
    }

2 比如目前有n级台阶,你可以一次走一阶台阶或一次走两阶台阶,走完n阶台阶有几种方法。仔细想一下,可以根据第一步的走法把所有走法分为两类,第一类是第一步走了1个台阶,另一类是第一步走了2个台阶。
推算如下:

微信截图_20210513230012.png

终止条件是 n=2或n=1。公式即为:f(n) =f(n-1)+f(n-2)
代码

    public static Integer calculateClimbe(Integer n){
        if(n==1) return 1;
        if(n==2) return 2;
        int value = calculateClimbe(n-1)+calculateClimbe(n-2);
        return value;
    }

相关文章

  • 递归介绍

    使用递归时需要满足的条件 1 解决该问题需要分解成几个子问题2 分解后的子问题的解决思路除了数据规模不同,求解思路...

  • 13.递归函数

    目录:1.递归的介绍2.fibonacci数列3.递归和循环的比较 1.递归的介绍 函数直接或间接调用自身就是递归...

  • 深度学习之时间递归神经网络

    递归神经网络(RNN)分别是时间递归神经网络和结构递归神经网络。本文主要介绍时间递归神经网络。 Elman递归神经...

  • python递归算法、尾递归算法及优化

    文章概述 递归算法和尾递归概述递归算法的优化 递归算法 介绍:递归算法是计算机编程领域非常重要的一种算法,采用分而...

  • 算法小专栏:“D&C思想”与“快速排序”

    前一篇介绍了递归与尾递归,本篇将基于递归介绍快速排序等相关内容。 阅读本文你将收获: 分而治之思想:简称D&C,一...

  • 07《算法入门教程》递归算法

    1. 前言 本节内容是递归算法系列之一:递归的介绍,主要介绍了递归的定义,选择了数学归纳法这一数学模型帮助大家可以...

  • 汉诺塔问题的求解与分析

    一、递归算法介绍 这篇文章讲的是一个古老而又经典的汉诺塔问题,他是递归算法的一个很好的应用实例。有关递归函数的介绍...

  • 算法小专栏:递归与尾递归

    本篇将介绍递归与尾递归的相关内容。 一、什么是“递归”? 递归是一种优雅的解决问题的方法。 看一段最简单的递归例子...

  • 二叉树的非递归遍历

    引言 前面的文章已经介绍了二叉树的递归遍历,本章介绍二叉树的非递归方式,主要是通过栈来实现,通常来讲非递归的方式在...

  • 递归的简单介绍

    最近看到有用到递归的面试题有: ①将一个数字数组,所有元素进行组合,并将所有结果打印出来 ②在一个UIView类型...

网友评论

      本文标题:递归介绍

      本文链接:https://www.haomeiwen.com/subject/nqcfjltx.html