【问题标题】:Difference between "without using extra memory" and "use constant memory"“不使用额外内存”和“使用常量内存”之间的区别
【发布时间】:2018-12-26 01:36:20
【问题描述】:

当我用 OJ 练习算法时,我经常看到这两个要求。这两个要求是同一个意思吗?

例如:

  1. 单数 II:你能在不使用额外内存的情况下实现它吗?

  2. 单数 III:您能否仅使用恒定空间复杂度来实现它?

【问题讨论】:

  • 可能不一样。 “没有额外的空间”当然与“只有固定数量的额外空间”不同(当然,作者可能打算表达相同的意思)

标签: algorithm space-complexity


【解决方案1】:

没有。

不使用额外内存通常意味着您可以覆盖输入;所以它为更大的输入使用更多的内存(但只是那个内存 - 仅此而已)。 (通常也允许一个小的常量空间,例如用于函数的堆栈。)

常数空间复杂度通常意味着你不能覆盖输入,你只能使用一个小的常数空间。

【讨论】:

    【解决方案2】:

    它们的意思不同。

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

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

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

    而这意味着您用于解决问题的额外空间应该是一个常数,而与输入大小无关。

    【讨论】:

      猜你喜欢
      • 2011-10-02
      • 1970-01-01
      • 1970-01-01
      • 2013-01-28
      • 2011-03-29
      • 2017-02-02
      • 1970-01-01
      • 1970-01-01
      • 2013-09-18
      相关资源
      最近更新 更多