input: Write a function named remove_duplicates that takes in a list of integers and returns a new list with all duplicate elements removed. The function should preserve the order of elements. The function should handle empty lists and lists with only one element correctly, returning the input list unchanged if no duplicates are present.
  assert remove_duplicates([1, 2, 3, 2, 4, 5, 6, 3]) == [1, 2, 3, 4, 5, 6]
  assert remove_duplicates([1, 2, 3, 4, 5]) == [1, 2, 3, 4, 5]
  assert remove_duplicates([]) == []
  assert remove_duplicates([1]) == [1]
  assert remove_duplicates([1, 1, 2, 2, 3, 3]) == [1, 2, 3]
output: def remove_duplicates(lst):
      seen = set()
      result = []
      for num in lst:
          if num not in seen:
              seen.add(num)
              result.append(num)
      return result