Ctrl K

Пара с заданной суммой

Лёгкая
Дан массив целых чисел values и число goal. Найдите два разных элемента массива, которые в сумме дают goal, и верните их индексы (нумерация с нуля). Гарантируется, что такая пара ровно одна. Один и тот же элемент нельзя использовать дважды, но два разных элемента могут быть равны по значению. Индексы можно вернуть в любом порядке. Решение за O(n²) очевидно — попробуйте уложиться быстрее.
Пример 1
values=[8, -3, 5, 12], goal=2 → [1, 2]

-3 + 5 = 2, это элементы с индексами 1 и 2.

Пример 2
values=[4, 1, 6, 4], goal=8 → [0, 3]

Нужны две четвёрки: индексы 0 и 3. Один и тот же элемент дважды брать нельзя.

Пример 3
values=[0, 7], goal=7 → [0, 1]
Ограничения
  • 2 ≤ len(values) ≤ 10⁵
  • -10⁹ ≤ values[i] ≤ 10⁹
  • -10⁹ ≤ goal ≤ 10⁹
  • Подходящая пара существует и она единственная
Встречал эту задачу на настоящем собесе?
Решили0
Пробовали0
Отправок0
Принято—
Темы
Похожие задачиПобедитель с большинством голосов ЛёгкаяЕсть ли повтор ЛёгкаяПовтор в пределах окна ЛёгкаяПотерянный билет ЛёгкаяЗначения в обоих списках Лёгкая
загружаем Python…
Вход
values=[8, -3, 5, 12], goal=2
Ожидается
[1, 2]

«Запустить» — первые 3 теста у тебя в браузере, «Отправить» — все 35 тестов на сервере, включая скрытые.