mengjian-github / leetcode

leetcode前端题目笔记
0 stars 0 forks source link

347. 前 K 个高频元素 #46

Open mengjian-github opened 2 years ago

mengjian-github commented 2 years ago

给你一个整数数组 nums 和一个整数 k ,请你返回其中出现频率前 k 高的元素。你可以按 任意顺序 返回答案。

 

示例 1:

输入: nums = [1,1,1,2,2,3], k = 2 输出: [1,2] 示例 2:

输入: nums = [1], k = 1 输出: [1]

来源:力扣(LeetCode) 链接:https://leetcode.cn/problems/top-k-frequent-elements 著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

mengjian-github commented 2 years ago

直接用内部的sort:

/**
 * @param {number[]} nums
 * @param {number} k
 * @return {number[]}
 */
var topKFrequent = function(nums, k) {
    const map = new Map();

    for (const num of nums) {
        if (map.has(num)) {
            map.set(num, map.get(num) + 1);
        } else {
            map.set(num, 1);
        }
    }

    const keys = Array.from(map.keys()).sort((a, b) => map.get(b) - map.get(a));

    return keys.slice(0, k);
};