剑指offer_递归与循环---跳台阶

简介: 剑指offer_递归与循环---跳台阶

题目描述

一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法。

解题思路

1,用递归,将问题转换为f(n)=f(n-1)+f(n-2);

2,用迭代,原理类似

代码实现

/**
 * 
 */
package 递归和循环;
/**
 * <p>
 * Title:JumpFloor
 * </p>
 * <p>
 * Description:
 * </p>
 * 
 * @author 田茂林
 * @data 2017年8月23日 上午11:31:34
 */
public class JumpFloor {
    public int IntJumpFloor(int target) {
        if(target==1){
            return 1;
        }
        if(target==2){
            return 2;
        }
        int num =0;
        if(target>2){
            num = IntJumpFloor(target-1)+IntJumpFloor(target-2);
        }
        return num;
    }
    //==============================================迭代版本
    public int IntJumpFloorSuper(int target) {
        if(target==1){
            return 1;
        }
        if(target==2){
            return 2;
        }
        int before =2;
        int beforeagain =1;
        int end =0;
        for (int i = 3; i <=target; i++) {
            end  = before+beforeagain;
            beforeagain = before;
            before = end;
        }
        return end;
    }
}


目录
打赏
0
0
0
0
32
分享
相关文章
|
9月前
题目----递归和非递归分别实现求n的阶乘(不考虑溢出的问题)
题目----递归和非递归分别实现求n的阶乘(不考虑溢出的问题)
32 1
|
8月前
|
【洛谷 P1464】Function 题解(递归+记忆化搜索)
该题目定义了一个递归函数$w(a,b,c)$,具有特定的终止条件和递归规则。当$a, b, c$任一值小于等于0或大于20时,函数有特殊返回值。否则,根据$a, b, c$的相对大小关系应用不同的递归计算。给定输入是一系列的三元组$(a, b, c)$,以$-1,-1,-1$结束。程序使用记忆化搜索优化递归调用,避免重复计算。样例输入输出展示了如何计算$w(1, 1, 1)$和$w(2, 2, 2)$。
75 0
|
9月前
|
【PTA刷题+代码+详解】求二叉树度为1的结点个数(递归法)
【PTA刷题+代码+详解】求二叉树度为1的结点个数(递归法)
724 0
|
9月前
函数递归详解----跳台阶、斐波那契数列、汉诺塔问题
递归的思想:把⼀个⼤型复杂问题层层转化为⼀个与原问题相似,但规模较⼩的⼦问题来求解;直到⼦问题不能再被拆分,递归就结束了。所以递归的思考⽅式就是把⼤事化⼩的过程。递归中的递就是递推的意思,归就是回归的意思。
剑指offer_递归与循环---扑克牌顺子
剑指offer_递归与循环---扑克牌顺子
65 0
剑指offer_递归与循环---斐波那契数列
剑指offer_递归与循环---斐波那契数列
81 0
剑指offer_递归与循环---矩形覆盖
剑指offer_递归与循环---矩形覆盖
92 0
AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等