Ctrl K

Отрезок плейлиста из двух жанров

Средняя
В плейлисте n треков, genres[i] — номер жанра i-го трека. Хочется выбрать отрезок подряд идущих треков и прослушать его целиком, но настроение позволяет не больше двух разных жанров на весь отрезок. Верните наибольшую длину такого отрезка.
Пример 1
genres=[3, 0, 3, 1, 1, 3, 1] → 5

Последние пять треков [3, 1, 1, 3, 1] — только жанры 3 и 1. Если захватить ещё и 0, жанров станет три.

Пример 2
genres=[2, 2, 2] → 3

Весь плейлист одного жанра — его можно слушать целиком.

Пример 3
genres=[0, 1, 2, 3, 4] → 2

Все жанры разные, поэтому подходит не больше двух соседних треков.

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

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