Баланс разнообразия в массиве

Hard
Дан массив nums и целое k. Найдите длину самого длинного непрерывного подмассива, в котором для каждого значения, которое в нём встречается, частота лежит в отрезке [k, 2·k].

Значения, которых в выбранном отрезке нет, не учитываются. Нужен именно непрерывный фрагмент массива, а не произвольная подпоследовательность.

Например, при k = 2 каждое присутствующее число может встречаться 2, 3 или 4 раза — не один раз и не пять и более.

Примеры:

Вход: {"nums": [1, 1, 2, 2, 2, 3, 3, 3], "k": 2}
Выход: 8
Объяснение: nums=[1,1,2,2,2,3,3,3], k=2. Весь массив: частоты 1→2, 2→3, 3→3. Допустимый диапазон [2,4], все частоты подходят → длина 8.
Вход: {"nums": [5, 5, 5, 5, 5, 5], "k": 3}
Выход: 6
Объяснение: nums=[5,5,5,5,5,5], k=3. Одно значение с частотой 6; диапазон [3,6], 6 входит в него → длина 6.
Вход: {"nums": [1, 2, 3, 4, 5], "k": 1}
Выход: 5
Объяснение: nums=[1,2,3,4,5], k=1. Каждое число встречается ровно один раз; диапазон [1,2], все частоты валидны → длина 5.

Ограничения:

1 <= nums.length <= 10^5 1 <= nums[i] <= 10^4 1 <= k <= 100

Теги:

Массивы Скользящее окно Хэш-таблица

Комментарии (0)

Войдите, чтобы оставить комментарий

Пока нет комментариев. Будьте первым!