爬楼梯

爬楼梯,n级台阶,一次可以上1级,2级,或3级。 实现一个算法,计算有多少种上楼梯的方式。


最后一步的时候,踏上第n级楼梯的那步,可能走1级,2级或3级。也就是可能从第n-1级爬1步,或第n-2级爬,或2步,或n-3级爬3步。


return countways(n-1) + countways(n-2)+countways(n-3);


运算时间和斐波那契一样exponential = O(3^n).  对同一数值,countways会调用很多次,没必要。我们可以用DP来提高。


动态规划题:



最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 接触DP最早的应该就是这道题了吧,翻了翻leetcode submission发现最早的是在一年前... 而且是最...
    石榴蒂凡尼_21e4阅读 7,519评论 0 0
  • 我是小小强,这是我的第12篇原创文章,阅读需要大约10分钟。 题目 LintCode:爬楼梯 描述 假设你正在爬楼...
    我叫小小强阅读 2,713评论 0 0
  • Q: 前段时间笔试,遇到了以前学的一个算法,大学时没认真想,只是记着怎么写,现在得空,总结一下这个问题的解法。题目...
    我叫没名字啊阅读 14,427评论 5 15
  • 题目 假设你正在爬楼梯,需要n步你才能到达顶部。但每次你只能爬一步或者两步,你能有多少种不同的方法爬到楼顶部? 样...
    六尺帐篷阅读 3,547评论 0 3
  • 周六有个线下分享,主题是成功学,今天的习作算是文稿准备吧。其实不太想讲这个话题,10多年前很火,但现在稍微有点认知...
    YYmore阅读 2,895评论 2 4

友情链接更多精彩内容