动态规划
什么是动态规划
动态规划小李子
斐波那契数列
自上而下的备忘录法
通过一个数组来及记录已经求过的值,然后在需要的取出那个值即可。
//斐波那契函数
function fb(n) {
if (n <= 0) {
return -1
}
var memory = new Array(n + 1)
for (var i = 2; i < memory.length; i++) {
memory[i] = -1
}
return fbDiGui(n, memory)
}
//定义一个递归函数
function fbDiGui(n , memory) {
if (memory[n] != -1) {
return memory[n]
}
if (n <= 2) {
memory[n] = 1
} else {
memory[n] = fbDiGui(n-2) + fbDiGui(n - 1)
}
}
自下而上的动态规划
//从下到上
function fbE(n) {
var memory = new Array(n + 1);
for (var i = 1; i < n; i++) {
if (i <= 2) {
memory[n] = 1;
} else {
memory[n] = memory[n - 1] + memory[n - 2];
}
}
return memory[n];
}
感谢您花时间阅读此篇文章,如果您觉得看了这篇文章之后心情还比较高兴,可以打赏一下,请博主喝上一杯咖啡,让博主继续码字……
本文版权归作者和博客园共有,来源网址:https://blog.csdn.net/weixin_46498102 欢迎各位转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接