题目描述
一只青蛙一次可以跳上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;
}
}