剑指offer

跳台阶

2019-07-23  本文已影响0人  G_uest

题目来源:牛客网--跳台阶

题目描述

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

解题思路

这就是一个改版的斐波那契数列,只不过初始值不一样
fsequence[1] = 1;
fsequence[2] = 2;
到第一个台阶有一种可能(一下跳一个)
到第二个台阶有两种可能(一个一个跳,和一下跳两个)
到第三个台阶有三种可能(跳一个再跳两个,跳两个再跳一个,一个一个跳)
这样慢慢找下规律,发现符合 fn = f(n-1) + f(n-2)

java代码

public class Solution {
    public int JumpFloor(int target) {
        int[] fsequence = new int[50];
        fsequence[1] = 1;
        fsequence[2] = 2;
        for (int i = 3; i < 40; i++) {
            fsequence[i] = fsequence[i - 1] + fsequence[i - 2];
        }
        return fsequence[target];
    }
}
上一篇 下一篇

猜你喜欢

热点阅读