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;
    }
};
相关推荐
硕风和炜8 天前
【LeetCode: 1338. 数组大小减半 + 哈希表 + 贪心】
算法·leetcode·散列表·贪心·哈希表
硕风和炜16 天前
【LeetCode: 316. 去除重复字母 + 栈 + 哈希表】
java·算法·leetcode·散列表·贪心··哈希表
Ten peaches16 天前
JavaSE学习心得(集合篇)
java·jvm·集合·哈希表
跳跳的向阳花17 天前
16-02、JVM系列之:内存与垃圾回收篇(二)
jvm·内存··老年代·方法区·新生代
小柯J桑_25 天前
C++:探索哈希表秘密之哈希桶实现哈希
c++·哈希算法·散列表·哈希表
2401_8582861125 天前
102.【C语言】数据结构之用堆对数组排序
c语言·开发语言·数据结构·算法·
一直学习永不止步1 个月前
LeetCode题练习与总结:数组中两个数的最大异或值--421
java·算法·leetcode·字典树·数组·位运算·哈希表
robin_suli1 个月前
Java多线程八股(三)一>多线程环境使用哈希表和ArrayList
java·开发语言·多线程·哈希表
极客先躯1 个月前
高级java每日一道面试题-2024年11月24日-JVM篇-说说对象分配规则?
java·jvm···对象分配规则
极客先躯1 个月前
高级java每日一道面试题-2024年11月22日-JVM篇-说说堆和栈的区别?
java·jvm··