天天看点

8.剑指offer-跳台阶*

题干

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

知识点:递归

我的思路

看了是递归的提示。但是实在没思路。代码没写出。

大佬解析

8.剑指offer-跳台阶*

代码:

public class Solution {
    public int JumpFloor(int target) {
        if(target <= 2){
            return target;
        }
        //迭代的本质就是对递归对拆解,不需要强行理解pre1,2对应对阶数
        int pre2 = 1, pre1 = 2;
        for (int i = 3; i <= target; i++){
            int cur = pre2 + pre1;
            pre2 = pre1;
            pre1 = cur;
        }
        return pre1;
    }
}      
public class Solution {
    public int JumpFloor(int target) {
        //一种跳法跳到1,两种跳法跳到2
        if(target<=2){
            return target;
        }
        return JumpFloor(target-1)+JumpFloor(target-2);
    }
}      
上一篇: xshell4安装