Ctrl K

Тройки с нулевой суммой

Средняя
Дан массив целых чисел values. Найдите все различные тройки чисел, которые можно взять из трёх разных позиций массива так, чтобы их сумма была равна нулю. Каждую тройку верните списком из трёх чисел. Тройки, состоящие из одних и тех же чисел, считаются одинаковыми, даже если взяты с разных позиций, — в ответе каждая должна встречаться один раз. Если таких троек нет, верните пустой список. Порядок троек в ответе и порядок чисел внутри тройки не важны.
Пример 1
values=[3, -6, 2, 1, 3, -4, 0] → [[-6, 3, 3], [-4, 1, 3]]

Подходят −6 + 3 + 3 = 0 (число 3 встречается в массиве дважды, на разных позициях) и −4 + 1 + 3 = 0. Тройка −4 + 2 + 2 не годится: двойка в массиве одна.

Пример 2
values=[5, 1, 2, 7] → []

Все числа положительные, нулевой суммы не получить.

Пример 3
values=[0, 0, 0, 0, 0] → [[0, 0, 0]]

Нулей много, но тройка из нулей в ответе одна — повторы не нужны.

Ограничения
  • 3 ≤ длина values ≤ 3000
  • -10⁵ ≤ values[i] ≤ 10⁵
Встречал эту задачу на настоящем собесе?
Решили0
Пробовали0
Отправок0
Принято—
Темы
Похожие задачиСумма тройки ближе всего к цели СредняяЧетыре числа с заданной суммой СредняяФлажки трёх цветов СредняяСтудии для записи СредняяТройки с суммой меньше порога Средняя
загружаем Python…
Вход
values=[3, -6, 2, 1, 3, -4, 0]
Ожидается
[[-6, 3, 3], [-4, 1, 3]]

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