Ctrl K

Флажки трёх цветов

Средняя
Вдоль беговой дорожки воткнуты флажки трёх цветов. Цвет i-го флажка записан в flags[i]: 0 — красный, 1 — белый, 2 — синий. Переставьте флажки так, чтобы сначала шли все красные, потом все белые, потом все синие. Верните переставленный массив flags. Встроенной сортировкой пользоваться нельзя. Попробуйте обойтись одним проходом и O(1) дополнительной памяти.
Пример 1
flags=[2, 1, 0, 1, 2, 0] → [0, 0, 1, 1, 2, 2]

Ответ — [0, 0, 1, 1, 2, 2].

Пример 2
flags=[1, 0] → [0, 1]

Красный флажок встаёт перед белым: [0, 1].

Пример 3
flags=[2] → [2]
Ограничения
  • 1 ≤ len(flags) ≤ 300
  • flags[i] — это 0, 1 или 2
Встречал эту задачу на настоящем собесе?
Решили0
Пробовали0
Отправок0
Принято—
Темы
Похожие задачиТройки с нулевой суммой СредняяСумма тройки ближе всего к цели СредняяЧетыре числа с заданной суммой СредняяСтудии для записи СредняяТройки с суммой меньше порога Средняя
загружаем Python…
Вход
flags=[2, 1, 0, 1, 2, 0]
Ожидается
[0, 0, 1, 1, 2, 2]

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