Leetcode[70].爬楼梯
思路:
用f(x)表示爬到第x级台阶的方案数,最后一步可能跨了一级台阶,也可能跨了两级台阶,
所以状态转移方程式为f(x) = f(x - 1) + f(x - 2)
代码
class Solution { public int climbStairs(int n) { if(n <= 1){ return n; } int[] result = new int[n]; result[0] = 1; result[1] = 2; for(int i = 2;i < n;i++){ result[i] = result[i - 1] + result[i - 2]; } return result[n - 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;
}
}

浙公网安备 33010602011771号