Two Sum: найти пару чисел с заданной суммой

Middle Python algorithms

Условие задания

**Контекст:** классическая задача на собесах в Яндекс, Сбер, Тинькофф, T-Bank, Mail.ru, Ozon. Проверяет базовое понимание алгоритмической сложности и умение выбрать правильную структуру данных.

## Условие

Дан список целых чисел `nums` и целевое число `target`. Верни **индексы двух чисел** из `nums`, сумма которых равна `target`.

**Предположения:**
- Ровно одно решение существует (не нужно искать все пары)
- Один элемент нельзя использовать дважды
- Массив **не отсортирован**
- Числа могут быть **отрицательными**

## Примеры

[см. код в задании]

## Ограничения (constraints)

- 2 ≤ len(nums) ≤ 10⁴ (до 10 000 элементов)
- -10⁹ ≤ nums[i] ≤ 10⁹
- -10⁹ ≤ target ≤ 10⁹
- Ровно одно решение существует

## Требования

1. Написать функцию `two_sum(nums: list[int], target: int) -> list[int]`
2. **Указать Big O** вашего решения (time + space)
3. Упомянуть хотя бы **один alternative подход** и почему он хуже/лучше
4. Обсудить **edge cases**

## Что ценится на собесе

- Выбор **оптимальной структуры данных** (hash map vs отсортированный массив)
- Чёткое объяснение **time/space complexity**
- Обработка **edge cases** (дубликаты, отрицательные, нет решения)
- Чистый код без дубликатов логики

Темы

algorithms hash-map two-sum big-o

Подсказки

Все тестовые задания →

Частые вопросы

Какой уровень знаний нужен для задачи "Two Sum: найти пару чисел с заданной суммой"?

Это задание для уровня Middle. Для middle-аналитиков с опытом 1-3 года, требует уверенного владения темой и понимания edge cases.

На каких собеседованиях встречается такая задача?

Подобные задания в категории «Python» регулярно дают на собеседованиях аналитика данных в Яндекс, Сбер, Ozon, Авито, Тинькофф, Wildberries, T-Bank, X5, ВТБ и других крупных IT-компаниях. Тематика: algorithms, hash-map, two-sum, big-o.

Сколько времени даётся на решение?

На реальном собеседовании на подобную задачу отводится 15-30 минут — оцениваются подход, корректность, обработка edge cases. Для тренировки рекомендуем сначала решить самостоятельно, потом сверить с эталонным решением и подсказками.

Где ещё потренироваться по теме «Python»?

На zasqlpython.ru есть 482 Python задачи с проверкой через Pyodide, конспекты Python и pandas, AI мок-собеседование с разбором ваших ответов.

← Все задания