给定一个非空的整数数组,返回其中出现频率前 k 高的元素。
例如,
给定数组 [1,1,1,2,2,3]
, 和 k = 2
,返回 [1,2]
。
注意:
- 假设给定的 k 总是合理的,1 ≤ k ≤ 数组中不相同的元素的个数。
- 算法的时间复杂度必须优于 O(n log n) , n 是数组的大小。
首先统计每个元素的频率,即出现次数
然后创建桶数组,下标表示元素的频率,每个桶也是一个数组,内含出现频率为相应值的元素。例如bucket[i]表示出现频率为i的桶,内含所有出现i次的元素
按频率”从高到低“输出k个数字