Middle — Senior
25
Как устроено решение задачи поиска пары чисел с заданной суммой?
Компании, где спрашивали
Ниармедик Ваш Доктор Рядом
Ответ от нейросети
sobes.tech AI
Задача: найти в массиве пару чисел, сумма которых равна заданному числу.
Классическое решение:
- Перебор всех пар — O(n²), неэффективно.
Оптимальное решение с использованием хэш-таблицы (словаря):
- Создаем пустую хэш-таблицу.
- Проходим по массиву, для каждого элемента
xпроверяем, есть ли в таблице числоtarget - x. - Если есть — нашли пару.
- Если нет — добавляем
xв таблицу и идем дальше.
Сложность: O(n) по времени и O(n) по памяти.
Пример на Python:
def find_pair(nums, target):
seen = set()
for num in nums:
complement = target - num
if complement in seen:
return (complement, num)
seen.add(num)
return None
Это решение эффективно и широко используется в задачах поиска пар с заданной суммой.