zoukankan      html  css  js  c++  java
  • 另一种fib高效实现

    缓存形式的实现

    var memoize = function(fn) {
      var cache = [];
      return function(i) {
        return (i in cache) ? cache[i] :
          (cache[i] = fn.call(arguments.callee, i));
      };
    }
     
    var fib = new memoize(function(i) {
      if (i == 0 || i == 1)
        return 1;
      return this(i-1) + this(i-2);
    })
    
    
    

    新的实现:

    function fib(n) {
      function _fib(n, a, b, arg1, arg2) {
        if(n>1) _fib(n-1, a, b, arguments, arg1);
        return arg1[2] = arg2[1] = a+b;
      }
    
      return _fib(n, 0, 1, [], []);
    }
    

  • 相关阅读:
    kafka 副本复制的几个参数
    kafka 吞吐量为什么这么大?
    netty 的线程模型
    pulsar 实现的一种 RateLimiter
    rocketMQ 长轮询
    对比 kafka 和 rocketmq 的 IO
    配置 kafka 同步刷盘
    使用Shell脚本删除/清空日志文件
    反爬虫之JS反编译:PyExecJS
    LInux查看网速带宽及各进程占用情况:nethogs
  • 原文地址:https://www.cnblogs.com/rubylouvre/p/1830692.html
Copyright © 2011-2022 走看看