题目描述
一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法(先后次序不同算不同的结果)。
题解:
当n=0时,f(n)=0,n=1时,f(n)=1;n=2时,f(n)=2;当n>2时,可以分为两种情况:
①第一步跳1个台阶,这时有f(n-1)种跳法
②第一步跳2个台阶,这时有f(n-2)种跳法
所有f(n)=f(n-1)+f(n-1)
class Solution {
public:
int jumpFloor(int number) {
if(number<=2){
return number;
}
vector<int> vecs(number+1,0);
vecs[1]=1;vecs[2]=2;
for(int i=3;i<=number;i++){
vecs[i]=vecs[i-1]+vecs[i-2];
}
return vecs[number];
}
};