zoukankan      html  css  js  c++  java
  • 动态规划(斐波那契 JS实现)

    日常刷题时遇到如下一个问题,感觉很不做值得做一下并记录(原案例作者使用C++实现这里本人使用JS实现);

    题目信息:

    解法:

       //动态规划问题解决(斐波那契数)
      
    var datas=[ [12], [31,8], [8,19,0], [2,67,4,40], [44,5,27,6,5] ]; console.log('数据: ',datas); var n=5; var sum=0; //i:水平;j:竖直 function maxVal(i,j){ if(i==4) return datas[i][j]; let x=maxVal(i+1,j); let y=maxVal(i+1,j+1); return Math.max(x,y)+datas[i][j]; } var res= maxVal(0,0); console.log('最大值:',res);

    思考:动态规划的思想就是分治,通过把一个大问题分解成一小块一小块的,而这里的每一小块通常都是具有重叠的操作;就拿本例来分析通过二维数组的形式来存储斐波那契

       数,根据二维数组的特点可得到以下信息:

    • n 行数据时,n 与 i 是对应的(可以用于终止条件);
    • 从上往下看,节点为 (x,y)时,左子树位置为(x+1, y);右子树的位置为(x+1, y+1);
    • 重复操作的就是本节点的数据加上左子树,右子树的数据进行大小比较;

      因此又根据以上得到的信息,很简单的解决了这个问题;

    版权声明:本文为博主原创文章,如需转载,请标明出处。

  • 相关阅读:
    HashMap按键排序和按值排序
    LeetCode 91. Decode Ways
    LeetCode 459. Repeated Substring Pattern
    JVM
    LeetCode 385. Mini Parse
    LeetCode 319. Bulb Switcher
    LeetCode 343. Integer Break
    LeetCode 397. Integer Replacement
    LeetCode 3. Longest Substring Without Repeating Characters
    linux-网络数据包抓取-tcpdump
  • 原文地址:https://www.cnblogs.com/gamecc666/p/14574551.html
Copyright © 2011-2022 走看看