We provide an implementation of removing duplicated values from an (unsorted) array.

  • Sorted version (link)
def remove_duplicate(arr):
    seen = []
    for num in arr:
        seen.append(num)
    return seen
print(remove_duplicate([1, 2, 2, 4, 4]))
print(remove_duplicate([5, 4, 1, 5]))
print(remove_duplicate([5, 2, 5, 1]))
[1, 2, 4]
[5, 4, 1]
[5, 2, 1]

Time and space: $O(N)$. Not possible to be $O(1)$ since we do not know where the duplicate is located and no ordering information. Extra space is needed to check if value has been encountered before.