题目:
一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个 n 级的台阶总共有多少种跳法(先后次序不同算不同的结果)。
思路:
动态规划问题分三步:
1、状态定义:f(i): 跳到i台阶的总跳法
2、状态递推:f(i) = f(i-1)+f(i-2)
3、初始状态: f(0) = 1(0台阶,就是起点,到达0台阶的方法有一种,就是不跳[这里可能有点奇怪,但是想想,如果方法次数为0,就说明不可能开始...]), f(1) = 1;
代码:
class Solution {
public:
int jumpFloor(int number) {
if(number == 1)
{
return 1;
}
if(number == 2)
{
return 2;
}
return jumpFloor(number-1) + jumpFloor(number - 2);
}
};