【Leetcode】347. 前 K 个高频元素
- 题目链接
- 代码
题目链接
【Leetcode】347. 前 K 个高频元素
代码
func topKFrequent(nums []int, k int) []int {// 统计每种元素出现的次数cnt := map[int]int{}for _, val := range nums {cnt[val]++}// 元素<=>出现次数做一个映射,放到堆中,按照出现次数排序t := [][]int{}for num, time := range cnt {fmt.Println(num, time)t = append(t, []int{time, num})}// 对二维切片进行降序排序sort.Slice(t, func(i, j int) bool {return t[i][0] > t[j][0]})ans := []int{}// 取前k个元素作为答案for k > 0 {ans = append(ans, t[0][1])t = t[1:]k--}return ans
}