Skip to content
Leetcode
Esc
↑↓navigate↵open⌘Jpreview
On this page

347. Top K Frequent Elements

Given an integer array nums and an integer k, return the k most frequent elements. You may return the answer in any order

Array

Example 1:

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

Example 2:

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

Example 3:

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

Constraints:

  • 1 <= nums.length <= 10^5
  • -10^4 <= nums[i] <= 10^4
  • k is in the range [1, the number of unique elements in the array].
  • It is guaranteed that the answer is unique.

Approach

Solution

/**
 * @param {number[]} nums
 * @param {number} k
 * @return {number[]}
 */
var topKFrequent = function (nums, k) {
  const freq = {};
  for (let n of nums) freq[n] = (freq[n] || 0) + 1;

  return Object.keys(freq)
    .map(Number)
    .sort((a, b) => freq[b] - freq[a])
    .slice(0, k);
};

Explanation

Last updated on September 24, 2026

Was this page helpful?