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;
    }
};
相关推荐
啦啦啦啦啦zzzz12 天前
数据结构:堆排序
数据结构·c++·
mifengxing14 天前
LeetCode热题100——字母异位词分组
java·算法·leetcode·职场和发展·哈希表·hot100
8Qi816 天前
LeetCode 295:数据流的中位数(Median Finder)—— Java 题解 ✅
java·算法·leetcode·优先队列··中位数
8Qi818 天前
LeetCode 23. 合并 K 个升序链表 —— 小顶堆(PriorityQueue)
数据结构·算法·leetcode·链表·
8Qi819 天前
LeetCode 76. 最小覆盖子串(Minimum Window Substring)
数据结构·算法·leetcode·滑动窗口·哈希表
Dlrb121123 天前
数据结构-队列,循环队列,哈希表
数据结构·哈希表·队列·循环队列·哈希存储
L_090724 天前
【C++】STL — unordered_map 与 unordered_set 使用与模拟实现
开发语言·c++·stl·哈希表
bnmoel25 天前
数据结构深度剖析二叉树・中篇:堆的概念及结构 ,实现应用全解析
数据结构·算法·二叉树··top-k问题
运筹vivo@1 个月前
2657. 找到两个数组的前缀公共数组 | 难度:中等
算法·leetcode·职场和发展·哈希表
Tisfy1 个月前
LeetCode 3043.最长公共前缀的长度:哈希表(不转string)
算法·leetcode·散列表·题解·哈希表