Ctrl K

Два растущих отрезка подряд

Средняя
Датчик записал показания в массив readings. Найдите наибольшее k, при котором в массиве есть два отрезка длины k, идущих **вплотную друг за другом** (второй начинается сразу после конца первого), и оба строго возрастают. Формально: нужен индекс a, такой что readings[a..a+k-1] и readings[a+k..a+2k-1] — строго возрастающие отрезки. Отрезок из одного элемента считается возрастающим, поэтому ответ всегда не меньше 1. Верните наибольшее подходящее k.
Пример 1
readings=[4, 6, 9, 1, 3, 8, 12, 0] → 3

Отрезки [4, 6, 9] и [1, 3, 8] стоят вплотную друг к другу и оба строго растут, так что k = 3. Для k = 4 двух соседних растущих отрезков не найти.

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

Весь массив растёт, его можно разрезать пополам: [1, 2, 3] и [4, 5, 6].

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

Строгого роста нет нигде, но отрезки длины 1 всегда считаются растущими: [7] и [7].

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

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