`/**
- @param {number[]} nums
- @param {number} k
- @return {number[]}
*/
var topKFrequent = function(nums, k) {
// 此题使用桶排序分桶 此步骤使用 map 分桶
let myMap = new Map()
for (let i = 0; i < nums.length; i++) {
if (myMap.has(nums[i])) {
let value = myMap.get(nums[i])
value++
myMap.set(nums[i], value)
} else {
myMap.set(nums[i], 1)
}
}
// 使用 from 对函数进行一个置换成数组。
let arrayObj = Array.from(myMap)
arrayObj.sort(function (a, b) {
return b[1] - a[1]
})
let resultArr = []
for (let j = 0; j < k; j++) {
console.log(arrayObj[j])
resultArr.push(arrayObj[j][0])
}
return resultArr
};`
此题采用 map 进行分桶, 再使用 Array.from 对函数进行置换,最后使用一个数组,把想要的结果取出来。
其实解题的思路还是根据下面这个图:
