首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >你怎么知道什么时候应该用回忆录?

你怎么知道什么时候应该用回忆录?
EN

Stack Overflow用户
提问于 2020-07-23 20:16:03
回答 1查看 68关注 0票数 0

我正在学习关于回忆录的知识,虽然在Python需要的时候实现它没有什么困难,但我仍然不知道如何确定需要它的情况。

我知道,当存在重叠子调用时,它是实现的,但是如何确定是否是这种情况呢?在进行重叠调用之前,有些递归函数似乎变得很深。在一次编码面试中,你会如何识别这一点?你会画出所有的调用(即使其中的一些调用在O(2^n)复杂的蛮力解决方案中达到5-6级)吗?

像Fibonacci序列这样的情况是有意义的,因为重叠会立即发生( 'fib(i-1)‘调用几乎会立即与'fib(i-2)’调用重叠)。但在其他情况下,比如背包问题,我仍然无法思考如何在面试时使用回忆录。有没有快速检查重叠的方法?

我希望我的问题有意义。如果有人能给我一个好的资源,或者给我线索去寻找,我会非常感激的。提前谢谢。

EN

回答 1

Stack Overflow用户

发布于 2020-07-23 20:38:49

为了达到“回忆录”解决方案,您首先需要确定问题中的以下两个属性:

subproblems

  • Optimal重叠
  1. 子结构

看来你确实明白(1)。第(2)款:

最优子结构:如果一个子问题S的最优解s

关于更多细节,请看以下答案:

https://stackoverflow.com/a/59461413/12346373

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63062466

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档