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;
    }
};
相关推荐
英雄哪里出来10 天前
《哈希表》K倍区间(解题报告)
数据结构·算法·散列表·哈希表·解题报告
CS创新实验室19 天前
CPython 局部变量存储机制:从 “栈上存储“ 看语言实现差异
python···cpython·局部变量
June`1 个月前
深度刨析树结构(从入门到入土讲解AVL树及红黑树的奥秘)
数据结构·c++·二叉树·红黑树·二叉搜索树··avl树
apocelipes1 个月前
golang遍历处理map时的常见性能陷阱
数据结构·性能优化·golang·哈希表·hashtable
TAMOXL1 个月前
ctf.show pwn入门 堆利用-前置基础 pwn142
pwn·
TAMOXL1 个月前
NSSCTF [NISACTF 2022]ezheap
pwn·
阳洞洞1 个月前
138. Copy List with Random Pointer
数据结构·链表·list·哈希表
Dream it possible!2 个月前
LeetCode 热题 100_只出现一次的数字(96_136_简单_C++)(哈希表;哈希集合;排序+遍历;位运算)
c++·leetcode·位运算·哈希表·哈希集合
whoarethenext2 个月前
数据结构堆的c/c++的实现
c语言·数据结构·c++·
卷卷的小趴菜学编程2 个月前
算法篇-----滑动窗口
数据结构·算法·双指针·滑动窗口·哈希表·数组相关