剑指Offer第八题:跳台阶

跳台阶

https://www.nowcoder.com/practice/8c82a5b80378478f9484d87d1c5f12a4?tpId=13&tqId=11161&tPage=1&rp=1&ru=/ta/coding-interviews&qru=/ta/coding-interviews/question-ranking

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

解答:
1.设置一个全局变量time默认为零,模拟跳的过程,当跳到最终台阶的时候time加一。此方法耗时长。
public class Q_8 {

public  int time=0;
public int JumpFloor(int target) {
    Jump(target);
    return time;
}
public void Jump(int target) {
    if(target==1){
        time++;
    }else if(target==2){
        time++;
        Jump(1);
    }else {
        Jump(target-1);
        Jump(target-2);
    }
}

public static void main(String[] args) {
    System.out.println(new Q_8().JumpFloor(3));
}

}

2.类似斐波那契数列
思想:n个台阶的跳法=n-1个台阶的跳法+n-2个台阶的跳法
public class Q_8 {

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

}

全部评论

相关推荐

Hyh_111:像这种hr就不用管了,基本没啥实力,换一个吧
点赞 评论 收藏
分享
Sigma429:极兔啊,薪资开的巨低,还在上海,索性不做笔试了
点赞 评论 收藏
分享
09-23 15:37
门头沟学院 Java
面了100年面试不知...:ai面:请你说一下在无的论文/项目中,你具体做了什么
我的秋招日记
点赞 评论 收藏
分享
评论
4
收藏
分享

创作者周榜

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