Challenge Statement

  • Given an integer array nums and an integer k, return the k most frequent elements. You may return the answer in any order.
  • This challenge corresponds to LeetCode #347.

Constraints

  • 1 <= nums.length <= 105
  • k is in the range [1, the number of unique elements in the array].
  • It is guaranteed that the answer is unique.

Example 1:

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

Example 2:

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

Solution

Below is my solution and some test cases. This solution has a linear time complexity O(n) and a linear space complexity O(n), where n is the length of the input list.