Ctrl K

Плюс, минус, плюс

Средняя
Дан массив values чётной длины: ровно половина его чисел положительна, другая половина отрицательна, нулей нет. Переставьте числа так, чтобы: - массив начинался с положительного числа; - знаки соседних чисел всегда были разными; - положительные числа шли в том же порядке, что и в values, и отрицательные тоже. Такая перестановка единственна. Верните её новым массивом.
Пример 1
values=[-7, 2, 9, -1, -3, 4] → [2, -7, 9, -1, 4, -3]

Положительные по порядку: 2, 9, 4. Отрицательные: -7, -1, -3. Чередуем, начиная с положительного.

Пример 2
values=[-5, 8] → [8, -5]

Ответ должен начинаться с положительного числа: [8, -5].

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

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