Я бы использовал минимальную кучу размером k
здесь вместо хеш-таблицы.Просто добавьте слова в кучу с их соответствующей длиной - как только у вас будет k + 1 элементов в куче, удалите минимальный элемент и заново подогрейтеОбщее усилие будет O (n * log (k)), и вам потребуется O (k) дополнительного пространства (для поддержания кучи).