变态跳台阶:
一只青蛙一次可以跳上1级台阶,也可以跳上2级……它也可以跳上n级。求该青蛙跳上一个n级的台阶总共有多少种跳法。
思路:
n级台阶就有n种n次跳上台阶的方法,比如n==3,就有1次/2次/3次跳上台阶的方法
所以f(n)=f(n-1)+f(n-2)+·····+f(1)
又因为 f(n-1)=f(n-2)+·····+f(1)
f(n-2)=f(n-3)+``+f(1)
可见f(n)=2*f(n-1)
class Solution {
public:
int jumpFloorII(int number) {
if (number <= 0) {
return -1;
} else if (number == 1) {
return 1;
} else {
return 2 * jumpFloorII(number - 1);
}
}
};
网友评论