Ctrl K

Самая дешёвая вершина

Средняя
Дан массив heights — высоты точек вдоль тропы. Назовём тройку индексов i < j < k вершиной, если точка j строго выше обеих других: heights[i] < heights[j] и heights[k] < heights[j]. Индексы не обязаны идти подряд. Верните наименьшую возможную сумму heights[i] + heights[j] + heights[k] по всем вершинам. Если ни одной вершины нет, верните -1.
Пример 1
heights=[7, 2, 9, 4, 6, 3] → 9

Тройка 2, 4, 3 (индексы 1, 3, 5): вершина 4 выше обоих краёв, сумма 9. Меньше не получить.

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

Высоты только растут, справа от любой вершины нет числа ниже неё. Ответ -1.

Пример 3
heights=[5, 5, 5, 6, 5] → 16

Единственная подходящая вершина — 6: слева 5, справа 5, сумма 16.

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

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