Recursion 解决子问题

Recursion 解决子问题,recursion,dynamic-programming,memoization,Recursion,Dynamic Programming,Memoization,我什么时候选择记忆而不是动态规划? 它们似乎都具有相同的时间和空间复杂性。 那么,偏好其中一个的经验法则是什么呢?是动态编程中使用的一种技术,而不是一个单独的实体。时间/空间复杂性取决于算法和实现 通常,是一种识别作业中常见子任务的策略。您不需要多次执行子任务,而是使用执行周期以外的系统资源来捕获执行结果以供以后使用 通常,这是一个存储计算结果以避免重复计算工作的简单问题。在大多数情况下,这涉及到存储由参数值索引的函数结果。这是回忆录 更详细地说 DP有两种基本风格:自上而下和自下而上。自底向上

我什么时候选择记忆而不是动态规划?
它们似乎都具有相同的时间和空间复杂性。
那么,偏好其中一个的经验法则是什么呢?

是动态编程中使用的一种技术,而不是一个单独的实体。时间/空间复杂性取决于算法和实现

通常,是一种识别作业中常见子任务的策略。您不需要多次执行子任务,而是使用执行周期以外的系统资源来捕获执行结果以供以后使用

通常,这是一个存储计算结果以避免重复计算工作的简单问题。在大多数情况下,这涉及到存储由参数值索引的函数结果。这是回忆录

更详细地说

DP有两种基本风格:自上而下和自下而上。自底向上的方法从基本情况开始,直到请求的结果为止。这通常通过一个简单的迭代循环和一个存储中间结果的数组来实现

自上而下的方法是记忆。这会将原始请求分解成更小的问题,并在每个问题上递归。当它解决每个子问题时,它存储结果以供需要相同结果的其他分支使用