解法:先透過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);
};