zoukankan      html  css  js  c++  java
  • js 斐波那契序列

    // 旧版, 由于有递归, 时间空间复杂度太大
    function fib1(n) {
      if (n === 1 || n === 2) {
        return 1;
      } else {
        return fib1(n - 1) + fib1(n - 2);
      }
    }
    
    // 新版, 不要递归, 只遍历一次
    function fib2(n) {
      let seq = [].fill.call({ length: n}, 0);
      seq[0] = seq[1] = 1;
      for (var i = 2; i <= (n - 1); i++) {
        seq[i] = seq[i - 1] + seq[i - 2]
      }
      return seq[i - 1];
    }
    
    // 测试代码, fib1 不要传入 大于 50 的数, 电脑可能会卡死很久, fib2 可以传入比如 1000, 10000 一秒就遍历完了
    console.time(1)
    fib1(20);
    console.timeEnd(1)
    console.time(2)
    fib2(20);
    console.timeEnd(2)
    

    求第n个斐波那契数

    fibonacciRecursively(n) {
      if ( < 2) return n;
      return fibonacciRecursively(n - 1) + fibonacciRecursively(n + 1);
    }
    
    fibonacciRecursively(n, acc1, acc2) {
      if (n === 0) return acc1;
      return fibonacciRecursively(n - 1, acc2, acc1 + acc2);
    }
    
  • 相关阅读:
    MySQL记录
    yolo
    python 深度学习 库文件安装出错汇总
    OPENCV安装
    vs code安装leetcode插件
    打印机
    标注工具
    训练源代码训练数据集
    c++ 学习
    复现基于Pytorch的YOLOv3所踩的坑~
  • 原文地址:https://www.cnblogs.com/shrekuu/p/7833063.html
Copyright © 2011-2022 走看看