算法 – 在动态编程问题中从前面的v / s开始是否存在差异?

在动态编程问题中,无论你是从前面还是后面开始都有意义吗?

现在,我想不,因为即使在优化问题中,例如,fun(n)=一些惩罚乐趣(n-1),这里fun(n-1)独立于n处的值.这意味着,我们很可能从头开始计算乐趣(n-1),然后加上惩罚.

你能给我举个例子吗?

最佳答案 据我所知,在动态编程的上下文中,“从后面开始”只是递归而不实际使用动态编程.如果重叠子问题的结果存储在高速缓存中,这称为“memoization”,它获得与动态编程相同的运行时复杂性,但不被某些人认为是“最严格意义上的动态编程”.总的来说,“从正面开始”没有辅助数据结构来执行记忆肯定是通过共识进行动态编程.

点赞