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;
    }
};
相关推荐
源代码•宸11 小时前
Redis 攻略(Redis Object)
数据库·redis·后端·缓存·字符串·哈希表·type
划破黑暗的第一缕曙光1 天前
[数据结构]:4.二叉树_堆
c语言·数据结构·二叉树·
全栈游侠1 天前
数据结构 -哈希表
数据结构·哈希表
福赖3 天前
《堆 / 栈 / 静态区区别、内存泄漏原因及排查》
c++·内存··
Q741_1477 天前
C++ 优先级队列 大小堆 模拟 力扣 1046. 最后一块石头的重量 每日一题
开发语言·c++·算法·leetcode·优先级队列·
燃于AC之乐11 天前
我的算法修炼之路--8——预处理、滑窗优化、前缀和哈希同余,线性dp,图+并查集与逆向图
算法·哈希算法·图论·滑动窗口·哈希表·线性dp
源代码•宸11 天前
Golang原理剖析(逃逸分析)
经验分享·后端·算法·面试·golang··内存逃逸
老鼠只爱大米18 天前
LeetCode算法题详解 560:和为K的子数组
算法·leetcode·前缀和·哈希表·子数组求和·subarraysum
小周同学@1 个月前
js实现力扣第13题(罗马数字转整数)
javascript·算法·leetcode·职场和发展·哈希表
伟大的车尔尼1 个月前
双指针题目:K 和数对的最大数目
双指针·哈希表