05. Top K Frequent Elements in Array
The problem can be found at the following link: Question Link
My Approach
When there is top K, by intuition priority queue comes into our mind. So I use a hash map to count the frequency of each element.
Then, I use a priority queue (max-heap) to keep track of the K most frequent elements.
I iterate through the map, pushing each element and its frequency into the priority queue. Once the queue size exceeds K, I pop the element with the highest frequency, ensuring that only the top K frequent elements remain in the queue.
Finally, I return the elements from the priority queue.
Time and Auxiliary Space Complexity
Time Complexity:
O(N log K)
, whereN
is the number of elements in the input array. Building the frequency map takesO(N)
time, and inserting and extracting elements from the priority queue takesO(log K)
time.Auxiliary Space Complexity:
O(N)
, whereN
is the number of elements in the input array.
Code (C++)
Contribution and Support
For discussions, questions, or doubts related to this solution, please visit our discussion section. We welcome your input and aim to foster a collaborative learning environment.
If you find this solution helpful, consider supporting us by giving a ⭐ star to the getlost01/gfg-potd repository.
Last updated