题目描述
一只青蛙一次可以跳上1级台阶,也可以跳上2级……它也可以跳上n级。求该青蛙跳上一个n级的台阶总共有多少种跳法。
这道题借之前青蛙跳台阶的噱头,然而和动态规划一点关系都没有。是一个典型的排列组合问题
其实就是空当插隔板。
总共的选择可以用如下公式进行表示:
C0n+C1n+C2n+……+Cnn=2n
所以就很简单了。
class Solution {
public:
int jumpFloorII(int number) {
if(number<=2)
return number;
int cur=2;
int next;
for(int i=3;i<=number;++i)
{
next=cur*2;
cur=next;
}
return next;
}
};