leetcode347.前K个高频元素

先使用map,统计每个字符出现的频率,然后使用优先队列根据字符出现频率存储字符,然后弹出堆中元素,弹出K次完成操作!

如果看不懂本题CPP语法的,可以参考我的另外一篇博客------------->CPP优先队列priority_queue,定义比较器,重载operator()

cpp 复制代码
class less1{
    public:
    bool operator()(const pair<int,int>& p1,const pair<int,int>& p2){
        return p1.second<p2.second;
    }
};

class Solution {
public:
    vector<int> topKFrequent(vector<int>& nums, int k) {
        unordered_map<int,int> m;
        vector<int> ans;
        for(int i=0;i<nums.size();++i){
            m[nums[i]]++;
        }
        priority_queue<pair<int,int>,vector<pair<int,int>>,less1> pq;
        for(const auto& item:m){
            pq.push(item);
        }
        for(int i=0;i<k;++i){
            ans.push_back(pq.top().first);
            pq.pop();
        }
        return ans;
    }
};
相关推荐
sogw-三叶草️1 天前
HITCON CTF 2014 — stkof · Unsafe Unlink
网络·安全·web安全·pwn·堆·二进制安全·堆漏洞
sogw-三叶草️2 天前
House of Orange
网络安全·pwn·堆·二进制安全
-dzk-3 天前
【堆】LC 347.前 K 个高频元素
算法·堆
ShineWinsu3 天前
对于Redis:Hash类型的解析
c++·redis·分布式·缓存·面试·hash·哈希表
晨小安8 天前
ThreadLocal及其内存泄漏问题深度解析
java·jvm·tomcat·哈希表
sogw-三叶草️8 天前
House Of Einherjar
pwn·堆·二进制安全
桃蹊、1 个月前
FreeRTOS(二)之堆和栈:内存基础入门
freertos·内存管理·栈·堆
qeen871 个月前
【数据结构】哈希表的C++实现与封装
数据结构·c++·散列表·哈希表
Tisfy1 个月前
LeetCode 1386.安排电影院座位:哈希表+位运算
算法·leetcode·散列表·题解·哈希表