Ctrl K

Вырезать кусок ради порядка

Средняя
Датчик записал ряд показаний readings. Хочется, чтобы ряд нигде не убывал, и для этого разрешено ровно одно действие: вырезать **один непрерывный кусок** (возможно, пустой). Оставшиеся показания склеиваются в исходном порядке. Верните минимальную длину куска, после удаления которого оставшийся ряд не убывает (каждое следующее значение не меньше предыдущего).
Пример 1
readings=[2, 4, 9, 1, 3, 5, 6] → 3

Вырезаем [9, 1, 3] — остаётся [2, 4, 5, 6], она не убывает. Двух удалённых значений не хватит.

Пример 2
readings=[7, 6, 5] → 2

Значения только убывают, так что оставить можно лишь одно — удаляем два.

Пример 3
readings=[1, 1, 3, 8] → 0

Ряд уже не убывает, вырезать ничего не нужно.

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

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