当前位置 博文首页 > 文章内容

    --算法恩仇录--实战篇--力扣(LeetCode)--070-爬楼梯--

    作者: 栏目:未分类 时间:2020-09-18 11:01:21

    本站于2023年9月4日。收到“大连君*****咨询有限公司”通知
    说我们IIS7站长博客,有一篇博文用了他们的图片。
    要求我们给他们一张图片6000元。要不然法院告我们

    为避免不必要的麻烦,IIS7站长博客,全站内容图片下架、并积极应诉
    博文内容全部不再显示,请需要相关资讯的站长朋友到必应搜索。谢谢!

    另祝:版权碰瓷诈骗团伙,早日弃暗投明。

    相关新闻:借版权之名、行诈骗之实,周某因犯诈骗罪被判处有期徒刑十一年六个月

    叹!百花齐放的时代,渐行渐远!



    --算法恩仇录--实战篇--力扣(LeetCode)--070-爬楼梯--

    这道题主要是思路得对。

    思路

    假如你要走5个阶梯,你的第一步有两种选择。

    1. 走一步,还剩4个阶梯
    2. 走两步,还剩3个阶梯
      那么这就变成了 3 个阶梯加上 4个阶梯的情况。
      答案就出来了~
      f[n] = f[n-1] + f[n-2]

    JS代码:

    /**
     * @param {number} n
     * @return {number}
     */
    let fibo = [];
    function getFeibo(n) {
    	fibo[0] = 1;
    	fibo[1] = 1;
    	for(let i = 2; i<=n; i++){
    		fibo[i] = fibo[i - 1] + fibo[i - 2];
    	}
    	return fibo[n];
    }
    
    var climbStairs = function(n) {
        return getFeibo(n);
    };
    
    
    

    结果

    执行用时:84 ms, 在所有 JavaScript 提交中击败了37.76%的用户

    内存消耗:37.5 MB, 在所有 JavaScript 提交中击败了5.06%的用户

    PS:

    思路是对的没有问题,效率低下问题在于,斐波那契是有公式的,而我是使用遍历操作,难免效率较低。