当我使用OJ练习算法时,我经常看到这两个要求。这两个要求意味着同一件事吗?
例如:
单数II:您可以在不使用额外内存的情况下实现它吗?
单数III:您能否仅使用恒定的空间复杂度来实现它?
答案 0 :(得分:1)
不。
不使用额外的内存通常意味着您可以覆盖输入。因此它会为更大的输入使用更多的内存(但只是该内存-仅此而已)。 (通常也允许使用较小的常量空间,例如用于函数堆栈)。
恒定空间复杂度通常意味着不允许覆盖输入,而只能使用较小的恒定空间。
答案 1 :(得分:0)
通常,“恒定空间”复杂性意味着空间需求不会增加。输入增加(对于所有输入大小都是固定的),但是当空间需求随着增加no而增加时,据说正在使用额外的内存。输入(通常较大的输入大小)。 注意:此处不考虑输入所需的空间,而是考虑了算法/程序所需的额外空间。
答案 2 :(得分:0)
它们的含义不同。
您可以在不使用额外内存的情况下实现它吗?
这意味着除了给定输入之外,您不能使用任何其他空间。
您可以仅使用恒定的空间复杂度来实现它吗?
这意味着无论输入大小如何,用于解决问题的额外空间都应为常数。