对于动态规划问题,一般就是寻找动态转移方程和规划函数。
用f(x)表示爬到第x级台阶的方案数。
f(x) = f(x-1) + f(x-2)
边界条件为f(0) = 1, f(1) = 1
思想就和斐波那契数列相同的解法。
class Solution {
public int climbStairs(int n) {
int p = 0,q = 0, r = 1;
for(int i = 1; i<=n; i++){
p = q;
q = r;
r = p + q;
}
return r;
}
}