 Алгоритм 3:
    Создать множество из списка
    Сложность: !!!.
    Сложность: !!!. O(n) - выбираем максимальную сложность
    Приведенный алгоритм характеризуется линейной сложностью
    Время возрастает линейно и прямо пропорционально количеству передаваемых данных
    """
    lst_to_set = set(lst_obj)  # !!!
    return lst_to_set  # !!!
    lst_to_set = set(lst_obj)  # !!! O(n)
    return lst_to_set  # !!! O(1)


#############################################################################################
@@ -42,12 +44,13 @@ def check_2(lst_obj):
    что такой элемент отстутствует
    в оставшихся справа элементах
    Сложность: !!!.
    Сложность: !!!. O(n) * O(n) + O(1) + O(1) = O(n^2)
    Приведенный алгоритм характеризуется квадратичной сложностью
    """
    for j in range(len(lst_obj)):          # !!!
        if lst_obj[j] in lst_obj[j+1:]:    # !!!
            return False                   # !!!
    return True                            # !!!
    for j in range(len(lst_obj)):          # !!! O(n)
        if lst_obj[j] in lst_obj[j+1:]:    # !!! срез O(n) + in O(n) = O(n)  но вложенная в цикл!!!
            return False                   # !!! O(1)
    return True                            # !!! O(1)


#############################################################################################
@@ -58,14 +61,15 @@ def check_3(lst_obj):
    Вначале выполним для списка сортировку, далее, сравниваем элементы попарно
    Если присутствуют дубли, они будут находиться рядом.
    Сложность: !!!
    Сложность: !!! O(n) + O(n LOG n) + O(1) + O(1) + O(1) = O(n LOG n)
    Приведенный алгоритм характеризуется линейно-логарифмической сложностью
    """
    lst_copy = list(lst_obj)                 # !!!
    lst_copy.sort()                          # !!!
    for i in range(len(lst_obj) - 1):        # !!!
        if lst_copy[i] == lst_copy[i+1]:     # !!!
            return False                     # !!!
    return True                              # !!!
    lst_copy = list(lst_obj)                 # !!! O(n)
    lst_copy.sort()                          # !!! O(n LOG n)
    for i in range(len(lst_obj) - 1):        # !!! O(n)
        if lst_copy[i] == lst_copy[i+1]:     # !!! O(1) + O(1) = O(1)
            return False                     # !!! O(1)
    return True                              # !!! O(1)