题目描述
一只青蛙一次可以跳上1级台阶,也可以跳上2级……它也可以跳上n级。求该青蛙跳上一个n级的台阶总共有多少种跳法。
思路
f(1) = 1
f(2) = f(2-1) + f(2-2)
f(3) = f(3-1) + f(3-2) + f(3-3)
综上所述:
f(n) = 2 * f(n-1)
参考代码
public class Solution {
public int JumpFloorII(int target) {
int res = 1;
if (target <= 1)
return res;
// f(0) = 1
// f(1) = 1
// f(2) = f(0) + f(1)
// f(3) = f(0) + f(1) + f(2) = 2 * f(2)
for (int i = 2; i <= target; i++) {
res *= 2;
}
return res;
}
}