剑指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;
    }
}


相关文章
|
6月前
函数递归详解----跳台阶、斐波那契数列、汉诺塔问题
递归的思想:把⼀个⼤型复杂问题层层转化为⼀个与原问题相似,但规模较⼩的⼦问题来求解;直到⼦问题不能再被拆分,递归就结束了。所以递归的思考⽅式就是把⼤事化⼩的过程。递归中的递就是递推的意思,归就是回归的意思。
|
机器学习/深度学习
剑指offer_递归与循环---变态跳台阶
剑指offer_递归与循环---变态跳台阶
63 0
剑指offer_递归与循环---斐波那契数列
剑指offer_递归与循环---斐波那契数列
63 0
剑指offer_递归与循环---矩形覆盖
剑指offer_递归与循环---矩形覆盖
81 0
剑指offer_递归与循环---扑克牌顺子
剑指offer_递归与循环---扑克牌顺子
50 0
初学算法之递归---爬楼梯
初学算法之递归---爬楼梯
初学算法之---递归汉诺塔
初学算法之---递归汉诺塔
|
机器学习/深度学习 算法
do while循环以及一些题目
do while循环以及一些题目
121 0
|
算法
递归题目练习---N皇后问题
递归题目练习---N皇后问题
109 0
递归题目练习---N皇后问题