Ctrl K

Низко — высоко — низко

Средняя
Дан массив целых чисел values. Переставьте его элементы так, чтобы они чередовались «низко — высоко»: values[0] ≤ values[1] ≥ values[2] ≤ values[3] ≥ values[4] ≤ … Такая перестановка всегда существует, а подходящих вариантов обычно несколько — годится любой. Верните переставленный массив. Сортировка решает задачу за O(n log n). Получится ли за один проход?
Пример 1
values=[4, 2, 9, 7, 1] → [2, 9, 4, 7, 1]

Например, [2, 9, 4, 7, 1]: 2 ≤ 9 ≥ 4 ≤ 7 ≥ 1. Подойдёт и любая другая перестановка с тем же чередованием, скажем [1, 7, 2, 9, 4].

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

Нестрогие неравенства выполняются и для равных чисел — массив можно не трогать.

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

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