题目描述
公众号:手摸手前端进阶
给你一个整数数组 nums 和一个整数 k ,请你返回其中出现频率前 k 高的元素。你可以按 任意顺序 返回答案。
示例 1:
输入: nums = [1,1,1,2,2,3], k = 2
输出: [1,2]
示例 2:
输入: nums = [1], k = 1
输出: [1]
复制代码
/**
* @param {number[]} nums
* @param {number} k
* @return {number[]}
*/
var topKFrequent = function(nums, k) {
const map = new Map()
nums.forEach(n => {
map.set(n, map.has(n) ? map.get(n)+1 : 1)
})
const list = Array.from(map).sort((a, b) => b[1] - a[1])
return list.slice(0, k).map(n => n[0])
};
// 题目转载自力扣官网:
// https://leetcode-cn.com/problems/top-k-frequent-elements/
复制代码
© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END