Ctrl K

Морозы в скользящем окне

Средняя
Метеостанция записала дневные температуры temps. Для каждого отрезка из width идущих подряд дней найдите «мороз ранга rank»: упорядочьте температуры отрезка по возрастанию и возьмите rank-ю по счёту. Если она отрицательная — это и есть ответ для отрезка, иначе ответ 0 (в отрезке меньше rank морозных дней). Верните ответы для всех отрезков, начиная с первого: всего len(temps) - width + 1 чисел.
Пример 1
temps=[-4, 2, -7, -1, 0], width=3, rank=2 → [-4, -1, -1]

Окна: [-4, 2, -7] — второе по холоду -4; [2, -7, -1] — второе -1; [-7, -1, 0] — второе -1.

Пример 2
temps=[3, -2, 5, 6], width=2, rank=2 → [0, 0, 0]

Ни в одном окне нет двух морозных дней, поэтому везде 0.

Пример 3
temps=[-9, -9, 4], width=1, rank=1 → [-9, -9, 0]
Ограничения
  • 1 ≤ len(temps) ≤ 10⁵
  • 1 ≤ width ≤ len(temps)
  • 1 ≤ rank ≤ width
  • -50 ≤ temps[i] ≤ 50
Встречал эту задачу на настоящем собесе?
Решили0
Пробовали0
Отправок0
Принято—
Темы
Похожие задачиОтрезок плейлиста из двух жанров СредняяОкна с заданным числом тревог СредняяОтрезки с k нечётными СредняяДва отрезка с нужной суммой СредняяСнять с краёв ровно столько Средняя
загружаем Python…
Вход
temps=[-4, 2, -7, -1, 0], width=3, rank=2
Ожидается
[-4, -1, -1]

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