【发布时间】:2019-10-18 02:25:31
【问题描述】:
我正在尝试解决空间中 O(1) 的问题。谁能帮我确定以下代码是否占用 O(1) 空间?
我有一个列表作为输入,每次我运行循环时都会这样做
list = list[:len(list)/2+1]
列表重新分配是否使用该列表的原始内存,还是应该创建额外的内存使用?谢谢。
【问题讨论】:
标签: python
我正在尝试解决空间中 O(1) 的问题。谁能帮我确定以下代码是否占用 O(1) 空间?
我有一个列表作为输入,每次我运行循环时都会这样做
list = list[:len(list)/2+1]
列表重新分配是否使用该列表的原始内存,还是应该创建额外的内存使用?谢谢。
【问题讨论】:
标签: python
通过简单的测试可以看出是浅拷贝
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) 空间
【讨论】: