爬梯子
每次上到新的台阶时可能是跨一步上来的,也可能是跨两步上来的,所以这两者的所有可能便是所有方法总和
注意: 要考虑到临界值,我们是从第 0 级开始爬的,所以从第 0 级爬到第 0 级我们可以看作只有一种方案,即 f(0) = 1;从第 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;
}
}