9月7号leetcode每日一题

原题链接:前k个高频元素

思考过程

首先最直白的方法肯定是统计数字出现频率,然后排序选出频率最高的前K
个数字。但是既然会用到排序,那么复杂度就会来到 O(nlogn),不太符合题目的要求。
这时候很自然的就想到了快速的partition来进行划分,划分出来频率高的一边有k个即可。
另外一种想法就是(纯靠自己乱想的),因为题目保证答案唯一,所以频率最高的前K个数字是确定的,使用map计数,然后每轮对元素数目每次减去1,这样某一轮过后,必定会在map中只剩K个元素,最后push到结果即可。

阅读更多