LeetCode刷题-70. 爬楼梯
题目链接:70. 爬楼梯
¶题解:
简单动态规划问题!
¶题目简述:
每次只能爬一个台阶或两个台阶,求爬到第 n 个台阶的方案数!
¶题解:
动态规划:
状态表示:f[i]
表示爬到第 i
个台阶的方案数
状态计算:f[i] = f[i - 1] + f[i - 2]
简单解释:爬到第 i
个台阶的最后一步,一定是跨了一步或跨了两步,所以到达当前台阶的方案数一定是前 i - 1
个台阶的方案数和前 i - 2
个台阶的方案数之和!
初始转态: f[0] = 1 f[1] = 1
最终结果: f[n]
优化一下,不开辟数组,降低空间复杂度,只使用三个变量即可,如下!
时间复杂度: $O(n)$
空间复杂度: $O(1)$
¶AC代码:
1 |
|
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 小牛博客!
评论