核心思想:动态规划
其实就是找规律,和斐波那契额数列很像:
f(n)=f(n-1)+f(n-2)
由于可以通过在 n-1 阶的那块一次性爬 1 步来达到 n 楼层,以及通过在 n - 2 阶 一次性爬 2 步来达到 n 楼层。所以就是这两种情况的总和。
简单题一道
class Solution {
public int climbStairs(int n) {
if(n == 1){
return 1;
}
if(n == 2){
return 2;
}
int p = 1;
int q = 2;
int r = 0;
for(int i = 3; i <= n; i++){
r = p + q;
p = q;
q = r;
}
return r;
}
}