剑指offer(八)跳台阶

写在前面:

为了增长一下自己的数据结构能力,也为了面试准备,准备将剑指Offer做一下,并与各位分享,希望各位可以对代码以及思路提提建议,欢迎志同道合者,谢谢。

题目
一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法(先后次序不同算不同的结果)。

思路:
找一下规律
1级 只有一种可能
2级有两种可能
3级 因为他可以跳两级,也可以跳一级,三级的台阶,不是从1级上来就是从2级上来,我们只需要将一级的可能加上二级的可能就是三级的跳法,其他的也是一样,这也是斐波那契数列

代码实现

package com.itzmn.offer;

/**
 * @Auther: 张梦楠
 * @Date: 2018/7/28 11:36
 * :https://www.jianshu.com/u/d611be10d1a6
 * 码云:https://gitee.com/zhangqiye
 * @Description:
 *      1 1 1 2 2
 *
 *      3级台阶
 *      可以跳一级,2级,几种跳发
 *      3个1         1
 *      1个2 1个1     2
 *
 *      4级
 *      4个1         1
 *      2个1 1个2     3
 *      2个2         1
 *
 *      5级
 *
 *      5个1         1
 *      1个2 3个1
 *      2个2 1个1     3
 *
 *
 *
 *
 */
public class Offer8 {


    public static void main(String[] args) {

        int i = new Offer8().JumpFloor(5);
        System.out.println(i);
    }

    public int JumpFloor(int target) {

        if (target <= 3){
            return target ;
        }

        return JumpFloor(target-1)+JumpFloor(target-2);
    }




}

希望大家可以多多指点,优化一下,
QQ群:552113611

你可能感兴趣的:(剑指offer(八)跳台阶)