const topKFrequent = function (nums, k) {
const hashmap = {}, bucket = [], res = [];
for (let i = 0, ii = nums.length; i < ii; ++i) {
hashmap[nums[i]] = hashmap[nums[i]] ? hashmap[nums[i]] + 1 : 1;
}
const hashmapkey = Object.keys(hashmap);
for (let i = 0, ii = hashmapkey.length; i < ii; ++i) {
if (!bucket[hashmap[hashmapkey[i]]]) {
bucket[hashmap[hashmapkey[i]]] = [];
}
bucket[hashmap[hashmapkey[i]]].push(hashmapkey[i]); // 把出现次数相等的数字放到一个桶里
}
for (let i=bucket.length-1; i>0 && k>res.length; --i) {
if (bucket[i]) {
res.push(...bucket[i]);
}
}
return res;
};