该代码的时间和空间复杂度是多少

时间:2020-08-02 08:39:55

标签: python arrays time-complexity space-complexity

此代码在时间和空间上的复杂性(查找唯一性和重复项)是什么?

arr = [1,1,1,2,4,2,5]
a = []
d = []
for i in arr:
    if i not in a:
        a.append(i)
    elif i in a:
        d.append(i)
print(a)
print(d)

1 个答案:

答案 0 :(得分:0)

您遍历arr,这使O(N)变得复杂。然后,检查i中是否有a,这又添加了N个操作。这使您的整体复杂度为O(N^2)。 内存复杂度为O(N),因为您需要N个元素并将它们分布在2个数组之间。您不会创建任何新元素。

还有一个小注释:考虑使用else代替elif i in a,因为在这种情况下,它们的含义基本上相同。