gpt4 book ai didi

algorithm - 时间复杂度如何从蛮力变为递归解决方案?

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:21:23 26 4
gpt4 key购买 nike

这是我正在处理的问题 enter image description here

我实现了一个强力解决方案和一个分而治之(递归)解决方案。他们都使用这个输入(从帖子 1 到 4)

对于暴力解决方案,我所做的是生成 {1,2,3,4} 的所有子集,遍历所有子集并仅检查包含 1 和 4 的子集。我知道我的暴力解决方案将在 O(2n) 时间内运行,因为在数学上有 2n 子集,我必须迭代所有这些。

对于我的递归解决方案。我所做的是分解这个问题,以便生成/将检查的唯一解决方案将是包含 1 和 4 的解决方案。例如,从 1 可以转到 2、3、4,如果转到 2,您可以转到 3、4,依此类推...直到到达 4。

在分析了这两种算法之后,我意识到唯一的区别是分而治之法甚至不会检查没有 1 和 4 的子集,而蛮力法会检查 {2,3}。这种差异将如何影响递归算法的时间复杂度。递归算法是否也会在 O(2n) 或更短的时间内运行,因为它检查的子集更少?

最佳答案

递归优化的额外步骤是使用内存。推理是这样的——一旦你到达并停在 x 后,无论你来自哪里,到最后都是相同的成本。
事实证明,只需要数组以索引 i 的最低价格持有即可结束。这可以在 O(n²) 时间内从右到左填充。

关于algorithm - 时间复杂度如何从蛮力变为递归解决方案?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30493047/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com