# Python Algorithms: Remove Duplicates

Recently, I decided to join my University’s coding team. Frankly, I haven’t coded since working for Intel on Venture team and I needed a refresher.

Since your here lets go along for the coding ride. The problem of the day is: Remove duplicate numbers from a list.

`def removeDups(lst):   newLst = []   for i in lst:      if i not in newLst:         newLst.append[i]   return newLst`

This code works but it is slow as fuck. The time complexity is O(n²) due to us going through two lists. On the `for i in lst` line that is one O(n) which has another loop nested inside on the `if i not in newLst` which is another O(n). This brings the complexity to O(n²).

`def removeDups(lst):   S = set()   for i in lst:      if i not in S:        S.add(i)   return S`

This solution however has the time complexity of O(n). The major reason for that is instead of using a new List for the removal of duplicate numbers we used a Set. A set uses a hash-table as its underlying data structure. This explains the O(1) membership checking, since looking up an item in a hash-table is an O(1) operation, on average. So now we only have the O(n) from the `for i in lst` line.

Congratulations we now know how to remove duplicate numbers from a list!

One clap, two clap, three clap, forty?

By clapping more or less, you can signal to us which stories really stand out.