Ctrl K

Метки по порядку с минимумом удалений

Средняя
На конвейере в ряд стоят коробки, на каждой метка 1, 2 или 3; метки записаны в массив labels. За одну операцию можно снять с конвейера любую коробку, остальные сохраняют свой порядок. Какое наименьшее число коробок нужно снять, чтобы метки оставшихся шли по неубыванию? Сумеете решить за O(n)?
Пример 1
labels=[3, 1, 2, 1, 3] → 2

Убираем первую тройку и двойку — остаётся 1, 1, 3. Меньше чем двумя удалениями не обойтись.

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

Последовательность уже не убывает, удалять ничего не нужно.

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

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