【发布时间】:2018-12-26 01:36:20
【问题描述】:
当我用 OJ 练习算法时,我经常看到这两个要求。这两个要求是同一个意思吗?
例如:
单数 II:你能在不使用额外内存的情况下实现它吗?
单数 III:您能否仅使用恒定空间复杂度来实现它?
【问题讨论】:
-
可能不一样。 “没有额外的空间”当然与“只有固定数量的额外空间”不同(当然,作者可能打算表达相同的意思)
标签: algorithm space-complexity
当我用 OJ 练习算法时,我经常看到这两个要求。这两个要求是同一个意思吗?
例如:
单数 II:你能在不使用额外内存的情况下实现它吗?
单数 III:您能否仅使用恒定空间复杂度来实现它?
【问题讨论】:
标签: algorithm space-complexity
没有。
不使用额外内存通常意味着您可以覆盖输入;所以它为更大的输入使用更多的内存(但只是那个内存 - 仅此而已)。 (通常也允许一个小的常量空间,例如用于函数的堆栈。)
常数空间复杂度通常意味着你不能覆盖输入,你只能使用一个小的常数空间。
【讨论】:
它们的意思不同。
你能在不使用额外内存的情况下实现它吗?
这意味着除了给定的输入之外,您不能使用任何额外的空间。
您能否仅使用恒定的空间复杂度来实现它?
而这意味着您用于解决问题的额外空间应该是一个常数,而与输入大小无关。
【讨论】: