70. 爬楼梯 - 力扣LeetCode和打家劫舍一样的思路1.看如何到最后一步的①跨一级台阶到②跨两级台阶到则f(x) f(x-1) f(x-2)f(x)是爬到x阶的方案数量2.考虑边界台阶有0、1阶时只有一种方案f2 2f3 3...本质斐波那契数列这里用打家劫舍利一样用到的滚动数组直接上代码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; } }p即为f(i-2)q即为f(i-1)r即为当前台阶f(i)到达当前台阶的方法数目官方给的图多看看70_fig1.gif (1080×480)方便for循环直接一次性解决所有问题像上面这样写就不用考虑前两个特殊情况了或者这样也行class Solution { public int climbStairs(int n) { int p 1; int q 1; int r 2; if (n 1 ){return 1;} if (n 2 ){return 2;} for(int i 3; i n; i ){ p q; q r; r p q; } return r; } }其实都是一样的无非是向前或向后延长两个位置