题目描述:
一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法(先后次序不同算不同的结果)。
题解:
class Solution {
public:
int jumpFloor(int number)
{
if(number == 0 || number == 1|| number == 2)
return number;
int dp_1 = 1;
int dp_2 = 2;
for(int i=3;i<=number;++i)
{
dp_2 = dp_1 + dp_2;
dp_1 = dp_2 - dp_1;
}
return dp_2;
}
};
解题思路:
动态规划,因为青蛙只能跳一个或者两个台阶,那么它只能从前一个或者或者前两个跳到当前台阶来。