跳台阶
题目描述
一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法(先后次序不同算不同的结果)
类似Fibonacci
class Solution {
public:
int jumpFloor(int number) {
vector<int> dp(1000,0);
dp[1] = 1;
dp[2] = 2;
for(int i = 3; i <= number ;i++)
dp[i] = dp[i-1] + dp[i-2];
return dp[number];
}
};
class Solution {
public:
int jumpFloor(int number) {
int& n = number;
if(n == 0 || n == 1 || n == 2) return n;
int a = 1, b = 2, c;
while(n-- >= 3){
c = a + b;
a = b;
b = c;
}
return c;
}
};