✅ Решение задачи 3318Time: O((n - k) * klogk)
Space: O(n)
💡 Идея🟦Проходим по массиву окном длины
k и для каждого определяем частоты всех чисел с помощью
HashMap🟦Далее нужно найти
x самых частых элементов, для этого используем
PriorityQueue с настроенным компаратором на сравнение частот из
HashMap, учитывая, что при одинаковых – приоритет отдается большему значению
🟦Добавив в очередь все уникальные значения, извлекаем из нее
x самых частых и суммируем в результат для текущего окна произведение каждого числа на его частоту
🟦В итоге формируется массив, содержащий такие суммы для всех возможных окон длины
k в исходном массиве
👩💻 Java Algo |
#solution3318