我在谈论计算第n个斐波纳契数的问题。 这里的一些用户说它实际上是一个DP问题,(请参阅这个问题的第一个答案和相同答案的评论What is dynamic programming?)但是其他人说这不是因为它没有优化任何东西而且由于其他原因,它是否也是如此?
答案 0 :(得分:0)
从动态编程的Wikipedia页开始,
var m := map(0 → 0, 1 → 1)
function fib(n)
if key n is not in map m
m[n] := fib(n − 1) + fib(n − 2)
return m[n]
This technique of saving values that have already been calculated is called memoization; this is
the top-down approach, since we first break the problem into subproblems and then calculate and
store values.
因此,它是用于获取序列中第N个数字的技术之一。
编辑 - 对于添加的问题,memoization是DP的一种形式。