【Leetcode】347. 前 K 个高频元素

【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
}