力扣70题:爬楼梯
假设你正在爬楼梯。需要 n
阶你才能到达楼顶。
每次你可以爬 1
或 2
个台阶。你有多少种不同的方法可以爬到楼顶呢?
示例 1:
输入:n = 2 输出:2 解释:有两种方法可以爬到楼顶。 1. 1 阶 + 1 阶 2. 2 阶
示例 2:
输入:n = 3 输出:3 解释:有三种方法可以爬到楼顶。 1. 1 阶 + 1 阶 + 1 阶 2. 1 阶 + 2 阶 3. 2 阶 + 1 阶
分析:
1. 如果有1个楼梯,那只能走1步登顶。 1中方法
2. 如果有2个楼梯。
a. 我们可以一次走一步登顶。
b. 也可以一次走2步,登顶。
累计就是2种方法。
3. 如果有3个楼梯:
a. 从楼底一步一步走上来
b. 从楼底先走1步,再一次走2步上来
c. 从楼底先一次走2步,再走1步上来
累计就是3种方法。
状态转移分析:
分析1: 步骤a是一步一步走上来的,也就是说要想走到3阶楼梯,前一次是从2阶楼梯上来的.
分析2: 步骤c是先从楼底一次走2步,然后一次走一步。也还是从2阶楼梯走上来的
也就是说 步骤a和步骤c,都依赖2阶楼梯的走法。而我们上面分析过了,从楼底走到2阶楼梯有 2 种方法.
分析3: 步骤b先从楼底走一步,最后一次走2步登顶。也就是说想要走到3阶楼梯,也可以从1 阶楼梯直接一次走2步直接