Skip to content

Latest commit

 

History

History
20 lines (11 loc) · 671 Bytes

File metadata and controls

20 lines (11 loc) · 671 Bytes

题目

给定一个非空的整数数组,返回其中出现频率前 k 高的元素。

例如,

给定数组 [1,1,1,2,2,3] , 和 k = 2,返回 [1,2]

注意:

  • 假设给定的 k 总是合理的,1 ≤ k ≤ 数组中不相同的元素的个数。
  • 算法的时间复杂度必须优于 O(n log n) , n 是数组的大小。

解答

首先统计每个元素的频率,即出现次数

然后创建桶数组,下标表示元素的频率,每个桶也是一个数组,内含出现频率为相应值的元素。例如bucket[i]表示出现频率为i的桶,内含所有出现i次的元素

按频率”从高到低“输出k个数字