Ctrl K

Пик, повторённый k раз

Средняя
Дан массив положительных чисел values и число k. Назовём пиком наибольшее значение во всём массиве. Посчитайте, сколько непрерывных отрезков массива содержат пик **не меньше k раз**. Отрезки с разными границами считаются разными, даже если состоят из одинаковых чисел. Перебор всех отрезков работает за O(n²) — попробуйте за линейное время.
Пример 1
values=[2, 5, 1, 5, 5], k=2 → 6

Максимум массива — 5. Отрезков, где пятёрка встречается хотя бы дважды, шесть: [2, 5, 1, 5], [2, 5, 1, 5, 5], [5, 1, 5], [5, 1, 5, 5], [1, 5, 5] и [5, 5].

Пример 2
values=[3, 8, 2], k=2 → 0

Восьмёрка в массиве одна, так что встретить её дважды не получится ни в одном отрезке.

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

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