【剑指offer】跳台阶

跳台阶

http://www.nowcoder.com/questionTerminal/8c82a5b80378478f9484d87d1c5f12a4

题目描述
一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法(先后次序不同算不同的结果)。
1、思路分析
还是利用递归的思想,先单独讨论边界情况即target=1或2时,后面>=3级的结果等于前一级的跳法加上前两级的跳法。对比了别人的答案,发现递归会影响程序的执行速度,迭代是递归的直接写法,但执行速度较快。
2、代码

public class Solution {
    public int JumpFloor(int target) {
        if(target == 1) return 1;
        if(target == 2) return 2;
        return (JumpFloor(target-1) + JumpFloor(target-2));
    }
}
public class Solution {
    public int JumpFloor(int target) {
        if (target <= 2) return target;
        int pre1 = 2, pre2 = 1;
        int cur = pre1 + pre2;
        for(int i = 3; i <= target; i++) {
            cur = pre1 + pre2;
            pre2 = pre1;
            pre1 = cur;
        }
        return cur;
    }
}

3、复杂度分析
还不太会,加油。

全部评论

相关推荐

不愿透露姓名的神秘牛友
07-09 12:02
ssob上原来真有BOSS啊
硫蛋蛋:这种也是打工的,只不是是给写字楼房东打工
点赞 评论 收藏
分享
05-12 17:00
门头沟学院 Java
king122:你的项目描述至少要分点呀,要实习的话,你的描述可以使用什么技术,实现了什么难点,达成了哪些数字指标,这个数字指标尽量是真实的,这样面试应该会多很多,就这样自己包装一下,包装不好可以找我,我有几个大厂最近做过的实习项目也可以包装一下
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务