【发布时间】:2018-02-14 05:37:50
【问题描述】:
这是典型的 4sum 问题。
给定一个包含 n 个整数的数组 S,S 中是否存在元素 a、b、c 和 d 使得 a + b + c + d = target?在给出目标总和的数组中找到所有唯一的四元组。
我知道的一种解决方案需要 O(n^3) 时间。但是当我分析最小时间复杂度时,我被以下陈述弄糊涂了:“由于 4 个数字会有 O(n^4) 种组合,在最坏的情况下,它们可能都加起来为目标数字,因此我们必须至少访问每个组合一次。因此,最小时间复杂度为 O(n^4)。
我知道这句话显然是错误的(毕竟存在 O(n^3) 算法),但不知道为什么。
我知道这可能是一个愚蠢的问题......但我真的对此感到困惑。任何人都可以帮忙吗?提前致谢。
【问题讨论】:
-
不能从组合数到步数下结论。如果这是真的,排序将需要 O(n!) 个步骤。
标签: algorithm time-complexity big-o