牛客题霸--跳台阶
跳台阶
题目链接
Solution
每次可以跳上1级台阶,也可以跳上2级。求跳到n级的台阶总共有多少种跳法。
dp可以解决此类计数问题。
设f[i]表示到第i层台阶的方案数,显然$f_1 = 1$, $f_2 = 2$;
有递推式:$f[n] = f_{n - 1} + f_{n-2}$
所以$O(n)$递推一下即可。
class Solution {
public:
int jumpFloor(int number) {
if (number == 1) return 1;
else if (number == 2) return 2;
else return jumpFloor(number - 1) + jumpFloor(number - 2);
}
};