Ctrl K

Вырезать блок ради подъёма

Лёгкая
Дан ряд высот heights — положительные целые числа. Вы выбираете один непустой блок подряд идущих элементов и вырезаете его, а оставшиеся элементы смыкаются, сохраняя порядок. Блок подходит, если после его удаления ряд строго возрастает. Пустой ряд и ряд из одного элемента считаются строго возрастающими. Верните, сколько существует подходящих блоков. Блоки, которые начинаются или заканчиваются в разных местах, считаются разными.
Пример 1
heights=[2, 9, 4, 6] → 7

Подходят 7 блоков: [9], [9, 4], [4, 6], [2, 9], [2, 9, 4], [9, 4, 6] и [2, 9, 4, 6]. Например, без [9, 4] остаётся [2, 6], а без [4] — [2, 9, 6], что не возрастает.

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

Ряд уже строго возрастает, поэтому подходит любой из 6 блоков.

Пример 3
heights=[7, 7] → 3

Убрать одну из семёрок — остаётся одно число, это возрастание. Убрать обе — пустой ряд тоже считается возрастающим. Итого 3.

Ограничения
  • 1 ≤ len(heights) ≤ 50
  • 1 ≤ heights[i] ≤ 50
Встречал эту задачу на настоящем собесе?
Решили0
Пробовали0
Отправок0
Принято—
Темы
Похожие задачиКрасота клумб на бюджете СложнаяЗначения в обоих списках ЛёгкаяОбщие значения с повторами ЛёгкаяЛучшая пара в пределах бюджета ЛёгкаяВдвое больше Лёгкая
загружаем Python…
Вход
heights=[2, 9, 4, 6]
Ожидается
7

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