Сложность: medium
Дан массив целых чисел nums и целое число k. Верните k самых частых элементов. Вы можете вернуть ответ в любом порядке.
Пример:
Input: nums = [1,1,1,2,2,3], k = 2
Output: [1,2]
👨💻 Алгоритм:
1⃣Подсчет частоты:
Используйте хеш-таблицу или словарь для подсчета количества вхождений каждого элемента в массиве nums.
2⃣Создание кучи:
Создайте кучу, чтобы отсортировать элементы по их частоте и выбрать k самых частых элементов.
3⃣Возврат результата:
Верните k самых частых элементов.
😎 Решение:
class Solution {
fun topKFrequent(nums: IntArray, k: Int): List<Int> {
val count = nums.groupingBy { it }.eachCount()
return count.entries.sortedByDescending { it.value }.take(k).map { it.key }
}
}Ставь 👍 и забирай 📚 Базу знаний