算法45:动态规划专练(力扣70: 爬楼梯 力扣746:使用最小花费爬楼梯)

力扣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步直接登顶。依赖1阶楼梯

   

你可能感兴趣的:(算法,算法,动态规划,leetcode)