我正在尝试解决O(1)在空间中的问题。谁能帮助我确定以下代码是否占用O(1)空间?
我得到一个列表作为输入,每次运行循环时我都会这样做
list = list[:len(list)/2+1]
列表重新分配是否使用该列表的原始内存,还是应该使用额外的内存?谢谢。
答案 0 :(得分:0)
您可以通过简单的测试看到它是浅表副本
list = [1,2,3,4,5,6,7,8]
list2 = list[:len(list)//2+1]
list2[0] = 999
print(list)
print(list2)
此打印
[1, 2, 3, 4, 5, 6, 7, 8]
[999, 2, 3, 4, 5]
因此很明显,他们没有共享内存。这不是O(1)空间