剑指offer(java实现)第8题“跳台阶”-牛客网

题目描述

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

时间限制:1秒 空间限制:32768K 热度指数:262078

解答:

public class Solution {//思路:从最基本的开始考虑,当n=1, 就1种跳法,当n=2,有2中跳法:1级1级的跳和一次跳2级,如果n=3的时候:当第一次跳的是1级台阶,后面的跳法跟跳2级台阶一样
    //;当第一次跳的是2级台阶,后面的跳法跟跳1级台阶一样。仔细看看,就跟斐波那契数列一样,因此解决方案就是和斐波那契数列一致。
    public int JumpFloor(int target) {
        if (target == 1) {
            return 1;
        }
        if (target == 2) {
            return 2;
        }
        int a = 1, b = 2;
        int c = 0;
        for (int i = 3; i <= target; i++) {
            c = a + b;
            a = b;
            b = c;
        }
        return c;
    }
}

猜你喜欢

转载自blog.csdn.net/zm13007310400/article/details/81147378