Хеш-таблица (словарь) обеспечивает O(1) в среднем для поиска, вставки и удаления. Обмен памяти O(n) на скорость превращает множество алгоритмов O(n²) в O(n), заменяя повторяющиеся сканирования мгновенным поиском.
Идея
Вместо поиска в списке каждый раз сохраняйте увиденные значения в хеш-таблице и проверяйте принадлежность за постоянное время.
Пример: two-sum в O(n)
():
seen = {}
i, x (nums):
need = target - x
need seen:
(seen[need], i)
seen[x] = i
two_sum([, , , ], )
