Условие задачи

Дан массив целых чисел nums длиной n и целое число k. Необходимо вернуть k наиболее часто встречающихся элементов массива nums.

Примеры

Пример 1:

Пример 2:

Решение

Для решения задачи можно воспользоваться словарем, в котором ключом будет являться элемент массива, а значением - количество его вхождений в массив. Затем можно отсортировать словарь по значению (числу вхождений) в порядке убывания и вернуть первые k ключей.

Шаг 1: Создание словаря

Создадим пустой словарь d. Затем пройдемся по всем элементам массива nums. Если элемент уже есть в словаре d, увеличим значение соответствующего ключа на 1. Если элемента нет в словаре d, добавим его в качестве нового ключа со значением 1.

Шаг 2: Сортировка словаря

Сортируем словарь d по значениям (числу вхождений) в порядке убывания. Для этого создадим список кортежей, каждый из которых содержит ключ и значение из словаря. Затем отсортируем этот список по значению (числу вхождений) в порядке убывания.

Шаг 3: Возврат k наиболее часто встречающихся элементов

Вернем первые k ключей из отсортированного списка.

Пример работы алгоритма