2018-05-08

跳台阶引起的for循环和递归地比较思考

lintcode上面的一个题目:

描述

假设你正在爬楼梯,需要n步你才能到达顶部。但每次你只能爬一步或者两步,你能有多少种不同的方法爬到楼顶部?

您在真实的面试中是否遇到过这个题?

样例

比如n=3,1+1+1=1+2=2+1=3,共有3种不同的方法

返回 3

这题不难,就是个为斐波纳契数,f(n)=f(n-1)+f(n-2)

那我直接拿递归来写:


递归写法

看上去好简单,好简洁,测试没问题,提交。结果:


错误提示

输入39的时候,时间超时,太没耐心了。。。看了下人家的代码,竟然是for写的:


for循环

就是把数据列举出来,然后求最后两位的和。。。但是速度为啥比递归快?

后来百度到母函数递归方法的时间复杂度(http://www.cnblogs.com/python27/archive/2011/12/09/2282486.html):


母函数递归方法的时间复杂度

呈指数增长,那就没有O(n)的速度快了。看来是原来学递归一直没注意时间复杂度,以后注意点。

作者小白,有错误的地方,望大神指出。谢谢!

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

相关阅读更多精彩内容

  • PERCEPTIONS OF INTERNATIONAL TRADE BARRIERS: EMPIRICALSTU...
    4f439b30ab44阅读 326评论 0 0
  • 1、人民日报:发展租赁市场,本意在于补上短板、“租购并举”,绝非为炒作者提供转场空间。炒房危害大,炒“租”同样如此...
    陈颖Christine阅读 361评论 0 1
  • *significance* 意义,重要性,含义 *stain* M : n 污渍,污迹,染色 v 玷污,染...
    Whalesea阅读 223评论 0 0
  • 在所有前进的道路上如果没有国家作为坚实的后盾,就如同飞机失去了雷达;在所有拥有的东西中如果失去了自己的本心,就如同...
    大妃阅读 462评论 0 7
  • 这是你
    天天看着你阅读 198评论 0 2

友情链接更多精彩内容