LeetCode热题100:81-90解析
81. 爬楼梯(动态规划/70)
假设你正在爬楼梯。需要 n 阶你才能到达楼顶。
每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢?
假设:1 <= n <= 45。
示例:输入:n = 3;输出:3。(1,1,1; 1,2; 2,1)
【分析】
到达第n阶的方法数等于达到第n-1阶和到达第n-2阶的方法数之和。
要到达第 n 阶,你可以选择从第 n−1 阶走一步上来,或者从第 n−2 阶走两步上来(从n-2阶走一步再走一步的情况,走一步时和第一种方法重了)。因此,到达第 n 阶的总方法数是到达第 n−1 阶和第 n−2 阶的方法数之和。
这种方法确保了每个子问题只被解决一次,并且其解被存储起来供后续使用,从而提高了算法的效率。
res[n]=res[n-1]+res[n-2]
1 | public class Solution{ |
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 珍珠巧克力!
评论
GitalkValine