本文主要是介绍347. 前 K 个高频元素(注释详解)(Top K Frequent Elements),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
给定一个非空的整数数组,返回其中出现频率前 k 高的元素。
示例 1:
输入: nums = [1,1,1,2,2,3], k = 2
输出: [1,2]
示例 2:
输入: nums = [1], k = 1
输出: [1]
方法一、时间复杂度(O(nlogn))建立堆的大小为n
class Solution {
public:vector<int> topKFrequent(vector<int>& nums, int k) {vector<int>out;//用map记录频率数unordered_map<int,int>record;for(int i=0;i<nums.size();i++)record[nums[i]]++;//将map中的pair颠倒顺序,使得优先队列以整数出现的频率进行排序priority_queue<pair<int,int>> res;//for(auto it=record.begin();it!=record.end();++it)//res.push(make_pair(it->second,it->first));for(auto a:record )//将map中的pair颠倒顺序,使得优先队列以整数出现的频率进行排序res.push(make_pair(a.second,a.first));//取出前k个while(k--){
这篇关于347. 前 K 个高频元素(注释详解)(Top K Frequent Elements)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!