前K个高频元素

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

/**
 * @param {number[]} nums
 * @param {number} k
 * @return {number[]}
 */
const topKFrequent = (nums, k) => {
    const map = {}
    nums.forEach(i => {
        if (map[i]) {
            map[i]++
        } else {
            map[i] = 1
        }
    })
    let arr = Object.values(map).sort((x, y) => x - y).slice(-k)
    arr = arr.map(i => {
        for (let key in map) {
            if (map[key] === i) {
                delete map[key]
                return key
            }
        }
    })
    return arr
};

  

posted @ 2023-02-20 19:37  671_MrSix  阅读(9)  评论(0编辑  收藏  举报