zoukankan      html  css  js  c++  java
  • --算法恩仇录--实战篇--力扣(LeetCode)--070-爬楼梯--

    --算法恩仇录--实战篇--力扣(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:

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

    离大侠再近一步!
  • 相关阅读:
    通过mixins方法处理调取服务器时间
    记录个人对vuex的简单理解
    利用弹性布局实现垂直居中
    vue.set的适用方法
    深拷贝和浅拷贝的实现方法
    Maven安装步骤
    build tools
    Git
    Url和Uri的区别
    函数式编程语言
  • 原文地址:https://www.cnblogs.com/Samo-Li/p/13690032.html
Copyright © 2011-2022 走看看