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;
    }
};
相关推荐
汀、人工智能1 天前
[特殊字符] 第24课:反转链表
数据结构·算法·链表·数据库架构··反转链表
汀、人工智能1 天前
[特殊字符] 第26课:环形链表
数据结构·算法·链表·数据库架构··环形链表
汀、人工智能2 天前
[特殊字符] 第25课:合并两个有序链表
数据结构·算法·链表·数据库架构··合并两个有序链表
汀、人工智能2 天前
[特殊字符] Python基础语法速成教程
算法·链表·均值算法·哈希表·lru缓存·python基础语法速成教程
汀、人工智能3 天前
04 - 控制流:if/for/while
数据结构·算法·链表·数据库架构··if/for/while
汀、人工智能3 天前
[特殊字符] 第27课:环形链表II
数据结构·算法·链表·数据库架构··环形链表ii
汀、人工智能3 天前
02 - 变量与数据类型
数据结构·算法·链表·数据库架构··02 - 变量与数据类型
汀、人工智能3 天前
03 - 运算符
数据结构·算法·数据库架构·位运算·哈希表·03 - 运算符
汀、人工智能3 天前
[特殊字符] 第1课:两数之和
数据结构·算法·链表·数据库架构··两数之和
汀、人工智能3 天前
[特殊字符] 第2课:字母异位词分组
数据结构·算法·链表·数据库架构··字母异位词分组