gpt4 book ai didi

algorithm - KSum 如何具有 O(N^k-1) 的最小运行时间?

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

在KSum问题中,比如3Sum问题中,有一种方法是先对数组进行排序,然后取第一个数。接下来是对数组的其余部分执行 2Sum,得到 O(N^2) 的总运行时间。虽然我觉得很难理解。由于我们必须执行大约 N-2 次 2Sum,因此总运行时间仍应为 O(N^3)。请赐教。

最佳答案

假设 T(n, k) 表示计算大小为 n 的已排序数组的 Ksum 问题所需的时间复杂度。基本情况是

T(n, 1) = n
T(n, 2) = n

现在对于每隔 k 个,我们必须在数组中循环一次,并检查是否可以从其他元素获得 k-1 总和,所以

T(n, 3) = n*T(n, 2)
T(n, 4) = n*T(n, 3)
....
T(n, k) = n*T(n, k-1)

所以对于 k>2,时间复杂度为

O(n^(k-1))

关于algorithm - KSum 如何具有 O(N^k-1) 的最小运行时间?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45647044/

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