70. climbing stairs
描述
n阶楼梯,每次一步或者两步,一共有多少种方法
[Solutions](../prob_70_Climbing Stairs.py)
brute_force
$f(n)=f(n-1)+f(n-2)$
显然有,到第n阶楼梯有两种方法,从n-1过去,和n-2过去。即到n阶的方法等于这两种方法的和
1 | def brute_force(n): |
这种方法的时间复杂度为 $2^n$. 图片来自于leetcode
带记忆的递归计算
在上面的计算中,显然有大量的重复计算,如果这个数值已经存下来了,就可以减小运算时间
1 | memo = {} |
动态规划
在暴力搜索里提到了,$f(n)=f(n-1)+f(n-2)$
1 | def dynamic(n): |
本文标题:70. climbing stairs
文章作者:王二
发布时间:2018-09-05
最后更新:2024-11-06
原始链接:https://wanger-sjtu.github.io/ClimbingStairs/
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!