剑指offer——09青蛙跳台阶
题目描述
一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法(先后次序不同算不同的结果)。
题解:
说俗一点,就是找规律;
不不,首先,我们分析一下,青蛙第一次可以跳一步,则其跳剩下的n-1个台阶的方法数为:f(n-1);
也可以跳两步,则其跳剩下n-2个台阶的方法数为:f(n-2);
故跳n台阶的方法为f(n-1) + f(n-2);
1 class Solution { 2 public: 3 int jumpFloor(int number) { 4 if (number < 1) 5 return 0; 6 vector<int>dp(number + 1, 0); 7 dp[1] = 1, dp[2] = 2; 8 for (int i = 3; i <= number; ++i) 9 dp[i] = dp[i - 1] + dp[i - 2]; 10 return dp[number]; 11 } 12 };