动态规划是啥?我想应该复杂问题简单化,不断将复杂问题拆解为小的问题~
可看下面这个例子
写入一个函数,输入n,求斐波那契数列的第 n 项,斐波那契数列的定义如下:$$
\left{
\begin{matrix}
0 & n = 0 \
1 & n = 1 \
fn(n - 1) + fn(n -2)& n > 1
\end{matrix}
\right}
$$
解法一:
function fibonacci(n) {
if (n === 0) {
return 0
}
if(n === 1) {
return 0;
}
return fibonacci(n - 1) + fibonacci(n - 2)
}
这个解法中,我们使用了递归函数,例如,我们以 f(10)为例来分析这个求解的过程。想求得 f(10), 我们得先求f(9) 和 f(8), 同样,想求得 f(9),需要先求得 f(8) 和 f(7)....下面这张树形图可以简单描述其中的依赖关系
从这张图中我们可以看到,很