Ctrl K

Самый длинный хребет на маршруте

Средняя
Туристический маршрут описан массивом heights — высотами точек по порядку. *Хребтом* назовём непрерывный участок маршрута длиной не меньше 3, на котором высота сначала строго растёт, а затем строго убывает. Вершина не может быть ни первой, ни последней точкой участка: и подъём, и спуск должны быть. Верните длину самого длинного хребта (число точек в нём) или 0, если хребтов на маршруте нет. Попробуйте обойтись одним проходом и O(1) дополнительной памяти.
Пример 1
heights=[3, 1, 2, 6, 8, 4, 4, 2] → 5

Хребет 1, 2, 6, 8, 4: подъём до 8 и спуск до 4. Дальше идёт ещё одна 4 — ровный участок обрывает спуск. Длина 5.

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

Маршрут только поднимается, спуска нет — хребта нет, ответ 0.

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

Хребты 0, 5, 0 (длина 3) и 0, 3, 2, 1, 0 (длина 5). Они делят нулевую точку между собой — это допустимо.

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

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