跳台阶
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];
}
}