Merging Two Sorted Lists While Removing Duplicates


Time: O(n + m)

Space: O(n + m)

list1 = [1, 1, 2, 2]
list2 = [1, 1, 2, 2]

merge=[]
i,j=0,0

while i<len(list1) and j<len(list2) :
if list1[i]<list2[j]:
if not merge or list1[i]!=merge[-1]:
merge.append(list1[i])
i+=1
else:
if not merge or list2[j]!=merge[-1]:
merge.append(list2[j])
j+=1

if i < len(list1):
while i<len(list1):
if not merge or list1[i]!=merge[-1]:
merge.append(list1[i])
i+=1
if j < len(list2):
while j<len(list2):
if not merge or list2[j]!=merge[-1]:
merge.append(list2[j])
j+=1

print((merge))