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)
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)
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.