gpt4 book ai didi

Python - del my_list [ :]? 的大 O

转载 作者:太空宇宙 更新时间:2023-11-03 12:44:24 26 4
gpt4 key购买 nike

del my_list[:]的大O是什么?这个命令删除列表中的所有元素。我的理解是它将是 O(n)。 n 是列表的长度。

因此这段代码的大 O 应该是 bigO(n^2),对吗?

请注意,这不是为了学校,而是为了我在面试练习时的理解。

from copy import deepcopy
class Solution:
# @param A : list of integers
# @return an integer
def removeDuplicates(self, A):
copy_array = deepcopy(A)
del A[:]

for j in copy_array:
if j in A:
pass
else:
A.append(j)

return len(A)

最佳答案

del 在这里不影响 big-O,循环是 n 和 A 测试中的 j 是 n,所以嵌套循环是O(n**2)delO(n),但它不是循环的一部分,并且由于它是低阶工作,因此被忽略。

旁注:O(n) 的解决方案是使用 collections.OrderedDict去重,保留顺序,使方法的主体只是:

A[:] = collections.OrderedDict.fromkeys(A)
return len(A)

关于Python - del my_list [ :]? 的大 O,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44148504/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com