zoukankan      html  css  js  c++  java
  • 斐波那契数列及其优化

        let fibonacci = function (n){
            if(n < 1) throw new Error('参数有误')
            if(n === 1 || n === 2) return 1
            return fibonacci(n - 1) + fibonacci(n - 2)
        }
    
        const memory = function (fn){
            // 利用函数记忆,将之前运算过的结果保存下来,对于频繁依赖之前结果的计算能够节省大量的时间,例如斐波那契数列,
            //缺点就是闭包中的 obj 对象会额外占用内存
            let obj = {}
            return function (n){
                if(obj[n] === undefined) obj[n] = fn(n)
                return obj[n]
            }
        }
    
        fibonacci = memory(fibonacci)
        console.log(fibonacci(5)) // 5
    好记性不如烂笔头,看到自己觉得应该记录的知识点,结合自己的理解进行记录,用于以后回顾。
  • 相关阅读:
    异步编程
    MVC返回文件
    MVC源码分析
    MVC源码分析
    MVC源码分析
    MVC源码分析
    MVC源码分析
    MVC源码分析
    MVC源码分析
    MVC源码分析
  • 原文地址:https://www.cnblogs.com/wangxi01/p/11087231.html
Copyright © 2011-2022 走看看