题目描述
一只青蛙一次可以跳上1级台阶,也可以跳上2级……它也可以跳上n级。求该青蛙跳上一个n级的台阶总共有多少种跳法。
示例1
输入
3
返回值
4
1
2
3
4
5
6
7
8
9
10
11
12
13
| class Solution {
public:
int jumpFloorII(int number) {
if(number<2)
return 1;
int result = 1;
for(int i = 1;i<number;i++)
{
result *= 2;
}
return result;
}
};
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
| class Solution {
public:
int jumpFloorII(int number) {
if(number<2)
return 1;
vector<int> dp(number+1,0);
dp[0]=dp[1]=1;
for(int i = 2;i<=number;i++)
{
for(int j=0;j<i;j++)
{
dp[i] += dp[j];
}
}
return dp[number];
}
};
|
1
2
3
4
5
6
7
8
9
10
11
12
13
| class Solution {
public:
int jumpFloorII(int number) {
if(number<2)
return 1;
int result = 1;
for(int i=2;i<=number;i++)
{
result = result<<1;//左移乘 右移除
}
return result;
}
};
|