Algorithm 区别于;不使用额外的内存”;及;“使用恒定内存”;

Algorithm 区别于;不使用额外的内存”;及;“使用恒定内存”;,algorithm,space-complexity,Algorithm,Space Complexity,当我用OJ练习算法时,我经常看到这两个要求。这两个要求意味着同一件事吗 例如: 单一数字二:你能在不使用额外内存的情况下实现它吗 单一数字III:您能否仅使用恒定的空间复杂度来实现它 没有 不使用额外内存通常意味着您可以覆盖输入;因此,对于较大的输入,它使用了更多的内存(但仅限于内存,仅此而已)。(通常也允许使用较小的常量空间,例如用于函数堆栈。) 恒定空间复杂度通常意味着不允许覆盖输入,只能使用较小的恒定空间。它们的意思不同 你能在不使用额外内存的情况下实现它吗 这意味着您不能使用给定输入之外

当我用OJ练习算法时,我经常看到这两个要求。这两个要求意味着同一件事吗

例如:

  • 单一数字二:你能在不使用额外内存的情况下实现它吗

  • 单一数字III:您能否仅使用恒定的空间复杂度来实现它

  • 没有

    不使用额外内存通常意味着您可以覆盖输入;因此,对于较大的输入,它使用了更多的内存(但仅限于内存,仅此而已)。(通常也允许使用较小的常量空间,例如用于函数堆栈。)


    恒定空间复杂度通常意味着不允许覆盖输入,只能使用较小的恒定空间。

    它们的意思不同

    你能在不使用额外内存的情况下实现它吗

    这意味着您不能使用给定输入之外的任何额外空间

    您能否仅使用恒定的空间复杂度来实现它

    然而,这意味着无论输入大小如何,用于解决问题的额外空间应为常数。

    可能不同。“没有额外的空间”当然与“只有固定数量的额外空间”不同(当然,作者可能也有相同的意思)