## 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 <= 10`

^{5}`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*.*