【JS算法】动态规划 - 斐波那契数列

JavaScript049

【JS算法】动态规划 - 斐波那契数列,第1张

动态规划算法的核心思想是:将大问题划分为小问题进行解决,从而一步步获取最优解的处理算法。

其基本思想也是将待求解问题分解成若干个子问题,先求解子问题,然后从这些子问题的解得到原问题的解。

与分治法不同,适合于用动态规划求解的问题,经分解得到子问题往往不是互相独立。即下一个子阶段的求解是建立在上一个子阶段的解的基础上,进行进一步的求解。

[0,1,1,2,3,5,8,13...]

递归写发

第一种方法可以在优化,因为不需要列出数组,只需要有前两值即可

题目出一个金额,和硬币面值。答:凑成这个金额所需的 最少的硬币个数

斐波那契数列的写法如下:

function fib(n) {

        if( n == 1 || n == 2) {

            return 1

        }

        return fib(n - 1) + fib(n - 2)

    }

你的问题,首先传入的参数应该体现在fib所对应的函数,也就是

var fib = function(n) { // n即为调用时的参数

}

此外,函数的变量的作用域只存在于当前函数中,也就是说,再次调用fib函数的时候,memory变量的值是不会得到保存的