首页 > 其他分享 >递归一

递归一

时间:2022-11-22 21:11:38浏览次数:29  
标签:10 arr return 递归 cache fbnq var

 

 

function fbnq(n) {
      if(n == 1 || n == 2) {
        return  1
      }
      return fbnq(n - 1) + fbnq(n - 2)
    }

    for(var i=10;0<i;i--){
      console.log(fbnq(i))
    }

缓存的写法 --- 减少递归次数,防止爆栈

// 缓存
    let cache = {}

    function fbnq(n) {
      if(n == 1 || n == 2) {
        return  1
      }
      if(cache.hasOwnProperty(n)) {
        return cache[n]
      }
      cache[n] = fbnq(n - 1) + fbnq(n - 2)
      return cache[n]
    }

    for(var i=10;0<i;i--){
      console.log(fbnq(i))
    }

变量局部化

    // 缓存
    class Cache {
      constructor(n) {
        this.cache = {}
      }

      init(n) {
        if(n == 1 || n == 2) {
          return  1
        }
        if(this.cache.hasOwnProperty(n)) {
          return this.cache[n]
        }
        this.cache[n] = this.init(n - 1) + this.init(n - 2)
        return this.cache[n]
      }
    }

    let fbnq = new Cache()

    for(var i=10;0<i;i--){
      console.log(fbnq.init(i))
    }

    console.log(fbnq.cache)

不用递归的写法

var arr = [1,1]

    while(arr.length < 10) {
      arr.push(arr[arr.length - 1] + arr[arr.length - 2])
    }

 

标签:10,arr,return,递归,cache,fbnq,var
From: https://www.cnblogs.com/caijinghong/p/16916459.html

相关文章

  • Vue项目详情页:keep-alive与路由的关系、activated生命周期函数、递归组件、css渐变色
    CSS渐变色样式递归组件router-view是设置路由的,router-link是指定跳转到哪个页面的keep-alivekeep-alive会缓存组件, 保存组件的渲染状态。使用keep-alive包裹rou......
  • 递归深拷贝
    constobj={ name:'测试', age:'25', address:{  name:'杭州' }, arr:['a','b','c']}constobj1=cloneDeep(obj)functioncloneDeep(obj){//存......
  • leetcode814. 二叉树剪枝。如果想到使用递归还是很简单的
    814.二叉树剪枝有一点疑问,为什么不能先     if(!root->left&&!root->right&&root->val==0)returnnullptr;   ?classSolution{public:TreeNode......
  • 向下递归以及向上递归
    结果以json格式输出,可以用json在线解析,方便查看packagecom.xintone.demo;importcn.hutool.json.JSONUtil;importlombok.Data;importorg.springframework.util.Col......
  • 递归:先递进,再回归
    您好,我是湘王,这是我的51CTO博客,欢迎您来,欢迎您再来~虽然高端的知识要用最朴素有趣的方式来表达才更容易让人接受,但有些专业的内容却不能有半点马虎,必须严肃对待。后续的内容......
  • 道长的算法笔记:树结构递归模型
    (一)线性结构的递归模型链表是一种天然带有递归性质的结构,当我们想要处理\(Node_A\)为首的链表,我们尝试处理\(Node_B\)为首的链表,然后再单独处理节点\(A\),类似的,......
  • 二叉树交换左右子树递归以及非递归算法
    递归方式基本思想:1、当待处理节点非空时,判断其左右孩子是否不同时为空:若是,转到2、否则分别递归调用左右子树进行操作。2、新建一个辅助结点,执行交换操作。3、递归调用......
  • 递归删除大于30天的旧日志
    /***递归删除大于30天的旧日志*/privatestaticvoiddeleteOldLogFiles(Filedir){if(dir.isDirectory()){File[]files=dir.lis......
  • Leetcode 799.香槟塔:动态规划+递归
    香槟塔:动态规划+递归题目来源:Leetcode22/11/20每日一题:799.香槟塔https://leetcode.cn/problems/champagne-tower我们把玻璃杯摆成金字塔的形状,其中第一层有1个玻......
  • 利用递归求两个数的最大公约数
    #include<stdio.h>inthcf(intn1,intn2);intmain(){intn1,n2;printf("输入两个正整数:");scanf("%d%d",&n1,&n2);printf("%d和%d的最大公约数......