Дан массив целых чисел nums
длиной n
и целое число k
. Необходимо вернуть k
наиболее часто встречающихся элементов массива nums
.
Пример 1:
nums = [1,1,1,2,2,3]
k = 2
[1,2]
Пример 2:
nums = [1]
k = 1
[1]
Для решения задачи можно воспользоваться словарем, в котором ключом будет являться элемент массива, а значением - количество его вхождений в массив. Затем можно отсортировать словарь по значению (числу вхождений) в порядке убывания и вернуть первые k
ключей.
Создадим пустой словарь d
. Затем пройдемся по всем элементам массива nums
. Если элемент уже есть в словаре d
, увеличим значение соответствующего ключа на 1. Если элемента нет в словаре d
, добавим его в качестве нового ключа со значением 1.
Сортируем словарь d
по значениям (числу вхождений) в порядке убывания. Для этого создадим список кортежей, каждый из которых содержит ключ и значение из словаря. Затем отсортируем этот список по значению (числу вхождений) в порядке убывания.
Вернем первые k
ключей из отсортированного списка.