347. Top K Frequent Elements

Description

Given an integer array nums and an integer k, return the k most frequent elements. You may return the answer in any order.

Example 1:

Input: nums = [1,1,1,2,2,3], k = 2
Output: [1,2]

Constraints:

  • 1 <= nums.legth <= 105

  • k is in the range [1, the number of unique elements in the array].

  • It is guaranteed that the answer is unique.

Follow up: Your algorithm's time complexity must be better than O(n log n), where n is the array's size.

Tags

Hash Table, Heap

Solution

Define a structure pair to store element and its frequency in nums. Then convert nums into a map whose key is the element and value is the frequency, and convert the each item into a pair. Push every pair into the pairHeap.

Refer to Reference for the following procedure.

Complexity

  • Time complexity: O(nlog(k))O(n\log(k))

  • Space complexity: O(n)O(n), n for the hash table and k for the heap.

Code

Reference

Last updated

Was this helpful?