values. Аналитик смотрит на них через окно ширины width — подряд идущий отрезок из width показаний — и сдвигает окно на одну позицию от начала до конца.
Верните массив, в котором i-й элемент — количество различных значений в окне values[i..i + width - 1]. Окон всего len(values) - width + 1.
Пересчитывать каждое окно с нуля долго — попробуйте уложиться в O(n).values=[4, 8, 4, 4, 6, 8], width=3 → [2, 2, 2, 3]
Окна: [4, 8, 4] — 2 разных, [8, 4, 4] — 2, [4, 4, 6] — 2, [4, 6, 8] — 3.
values=[9, 9, 9, 2], width=1 → [1, 1, 1, 1]
В окне из одного элемента всегда ровно одно значение.
values=[3, 1, 3, 2, 1], width=5 → [3]
width ≤ len(values) ≤ 10⁵values=[4, 8, 4, 4, 6, 8], width=3
[2, 2, 2, 3]
«Запустить» — первые 3 теста у тебя в браузере, «Отправить» — все 110 тестов на сервере, включая скрытые.