牛客题霸NC68题解

跳台阶

https://www.nowcoder.com/practice/8c82a5b80378478f9484d87d1c5f12a4?tpId=117&&tqId=34990&rp=1&ru=/ta/job-code-high&qru=/ta/job-code-high/question-ranking

跳台阶

题目描述

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

示例1

输入

1

返回值

1

示例2

输入

4

返回值

5

解决思路

就是个斐波那契数列,代码如下:

public class Solution {
    public int JumpFloor(int target) {

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

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

    }
}

也可以使用非递归实现,效率比较高:

public class Solution {
    public int JumpFloor(int target) {

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

        int m = 1, n = 1;

        for(int i = 2; i <= target; i++){
            int t = m + n;
            m = n;
            n = t;
        }

        return n;

    }
}
全部评论

相关推荐

牛客316659795号:不是,证明hr初筛已经过了,要投给部门筛一遍
点赞 评论 收藏
分享
03-31 16:42
已编辑
郑州西亚斯学院 后端
Java抽象带篮子:你简历少了几个模块看上去就感觉信息很少,简历怎么写可以看看我发的帖子
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务