-2

What is the Time and Space complexity of this code (Find Uniques and duplicates)?

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)
jonrsharpe
  • 115,751
  • 26
  • 228
  • 437

1 Answers1

0

You iterate through arr, which makes complexity O(N). Then you check if i is in a, which adds another N operations. This makes your overall complexity O(N^2). Memory complexity is O(N), because you take N elements and distribute them between 2 arrays. You don't create any new elements.

Also a small note: consider using else instead of elif i in a, because in this case they mean basically the same thing.