我们可以使用for循环轻松实现反向功能。这需要O(n)时间和O(1)内存,因为我们只是交换直到n / 2(不确定这是ceil还是floor)。
Python中的reversed
函数是否使用了这种交换方法?因此是O(1)
记忆?
答案 0 :(得分:2)
reversed
返回迭代器;它既不会修改原始序列,也不会修改原始序列,也不会生成新对象。因此它不需要超过O(1)空间。
如果收集迭代的值,您将创建一个新容器,显然需要与原始容器相当的空间。
您可以使用[].reverse()
执行列表的就地(O(1)空格)反向。