2022/12/21

LeetCode 347. Top K Frequent Elements

問題:將陣列常用的k個數值輸出
解法:先透過HashMap將出現次數儲存起來,將HashMap的values透過遞減排序,最後將該keys轉成Array並切割即可
JavaScript
/**
 * @param {number[]} nums
 * @param {number} k
 * @return {number[]}
 */
var topKFrequent = function (nums, k) {
    let map = new Map();
    nums.forEach((v, i) => {
        if (!map.has(nums[i])) {
            map.set(nums[i], 1);
        } else {
            map.set(nums[i], (map.get(nums[i]) + 1));
        }
    })

    map = new Map([...map.entries()].sort((a, b) => b[1] - a[1]));
    let temp = [...map.keys()];
    return temp.slice(0, k);
};