heights — высоты точек на маршруте. Каждая внутренняя точка (не первая и не последняя) получает очки:
- **2 очка**, если она строго выше *всех* точек до неё и строго ниже *всех* точек после неё;
- **1 очко**, если первое условие не выполнено, но точка строго выше соседа слева и строго ниже соседа справа;
- **0 очков** в остальных случаях.
Верните сумму очков всех внутренних точек.
Проверка «всех до и после» в лоб даёт O(n²) — попробуйте за линейное время.heights=[2, 5, 9, 7, 8] → 2
5 больше всего слева (2) и меньше всего справа (9, 7, 8) — 2 очка. 9 больше соседа слева, но не меньше соседа справа — 0. 7 меньше соседа слева — 0. Итого 2.
heights=[1, 4, 3, 5, 6] → 2
4 больше 1, но справа есть 3 — лишь сравнение с соседями: 4 > 3, значит 0. 3 меньше соседа слева — 0. 5: всё слева (1, 4, 3) меньше, всё справа (6) больше — 2. Итого 2.
heights=[3, 1, 2, 5, 4] → 1
1 и 5 не проходят даже проверку по соседям. 2 больше соседа 1 и меньше соседа 5, но слева есть 3 — это 1 очко. Итого 1.
heights=[2, 5, 9, 7, 8]
2
«Запустить» — первые 3 теста у тебя в браузере, «Отправить» — все 135 тестов на сервере, включая скрытые.