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.length <= 105
-104 <= nums[i] <= 104
k is in the range [1, the number of unique elements in the array].
It is guaranteed that the answer is unique.
What is the brute force way to solve this problem (in O(n log n))?
Is there a data structure that can keep track and sort the first k elements in a more efficient runtime?
Find a solution that takes is better than O(n log n)?