Ctrl K

Единственная вершина

Средняя
Профиль горной тропы задан массивом высот heights в точках через равные промежутки. Соседние высоты всегда различаются. Вершиной называется точка, которая строго выше обеих соседних. За краями профиля считается бесконечный обрыв, так что крайней точке достаточно быть выше своего единственного соседа. Гарантируется, что вершина на тропе ровно одна: тропа сначала только поднимается, затем только спускается (любой из участков может быть пустым). Верните индекс вершины (с нуля). Линейный проход очевиден — найдите вершину за O(log n).
Пример 1
heights=[120, 340, 515, 470, 90] → 2

Тропа поднимается до отметки 515 и дальше только спускается. Вершина — индекс 2.

Пример 2
heights=[900, 650, -20] → 0

Тропа с самого начала идёт вниз, поэтому выше всех — первая точка, индекс 0: за краем профиля всё считается ниже.

Пример 3
heights=[-5, 1, 8, 30] → 3
Ограничения
  • 1 ≤ len(heights) ≤ 1000
  • -2³¹ ≤ heights[i] ≤ 2³¹ - 1
  • heights[i] ≠ heights[i + 1]
  • Вершина ровно одна
Встречал эту задачу на настоящем собесе?
Решили0
Пробовали0
Отправок0
Принято—
Темы
Похожие задачиПоиск в сдвинутом отсортированном массиве СредняяПервая и последняя копия СредняяПоиск в таблице-цепочке СредняяПоиск в сдвинутом массиве с повторами СредняяМинимум в сдвинутом списке Средняя
загружаем Python…
Вход
heights=[120, 340, 515, 470, 90]
Ожидается
2

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