8___跳台阶

题目描述:

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

public class Solution {
    //思路:比如要跳到第6级  由于一次可以跳1级或者2级
    //跳一级时:从第五级开始跳,有几种可以到第五级的方法就有几种可以到第六级的方法
    //跳两级时:从第四级开始跳,有几种可以到第四级的方法就有几种可以到第六级的方法
    //同理可得,到第n级时,有几种可以到达第n级的方法,就是前两级之和。
    public int JumpFloor(int target) {
        if(0==target){
            return 0;
        }
        if(1==target){
            return 1;
        }
        if(2==target){
            return 2;
        }
        
        int preNum=2;
        int prepreNum=1;
        int res=0;
        
        for(int i=3;i<=target;i++){
            res=preNum+prepreNum;
            prepreNum=preNum;
            preNum=res;
        }
        return res;
    }
}

类似于斐波那契数列。

posted @ 2019-09-02 19:38  德鲁大叔817  阅读(372)  评论(0)    收藏  举报