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]
Example 2:
Input: nums = [1], k = 1 Output: [1]
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.
Follow up: Your algorithm's time complexity must be better than O(n log n)
, where n is the array's size.
Solution(javascript)
/**
* @param {number[]} nums
* @param {number} k
* @return {number[]}
*/
var topKFrequent = function(nums, k) {
let frequency = {};
for (let i = 0; i < nums.length; i++) {
if (frequency[nums[i]]) {
frequency[nums[i]] += 1
} else {
frequency[nums[i]] = 1
}
}
let sorted = Object.entries(frequency).sort((a,b)=> b[1] - a[1])
let res = []
for (let i = 0; i < k; i++) {
res.push(sorted[i][0])
}
return res
};