Ctrl K

Разложить по трём кучкам

Средняя
Дан массив целых чисел values и число mark, которое в массиве обязательно встречается. Переставьте элементы так, чтобы сначала шли все числа меньше mark, затем все числа, равные mark, и в конце — все числа больше mark. Внутри группы меньших и внутри группы больших чисел должен сохраниться исходный порядок. Верните получившийся массив.
Пример 1
values=[7, 2, 9, 5, 1, 5, 8], mark=5 → [2, 1, 5, 5, 7, 9, 8]

Меньшие 2 и 1 идут первыми в исходном порядке, затем обе пятёрки, затем 7, 9, 8 — тоже в исходном порядке.

Пример 2
values=[0, -4, 6, -1], mark=-1 → [-4, -1, 0, 6]

Меньше −1 только −4; 0 и 6 больше и сохраняют порядок.

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

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