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;
    }
};
相关推荐
雪碧聊技术3 天前
Native关键字、程序计数器、方法区
·程序计数器·方法区·native关键字
小辉同志5 天前
215. 数组中的第K个最大元素
数据结构·算法·leetcode··快速选择
AI人工智能+电脑小能手5 天前
【大白话说Java面试题】【Java基础篇】第10题:HashMap中的元素是有序存放的吗
java·开发语言·数据结构·后端·面试·哈希算法·哈希表
AI人工智能+电脑小能手5 天前
【大白话说Java面试题】【Java基础篇】第9题:HashMap根据key查询元素的时间复杂度是多少
java·开发语言·数据结构·后端·面试·哈希算法·哈希表
Q741_1477 天前
每日一题 力扣 2615.等值距离和 哈希表 前缀和 C++ 题解
c++·算法·leetcode·前缀和·哈希表
YuanDaima204812 天前
堆(优先队列)基础原理与题目说明
linux·运维·服务器·人工智能·python··代码
im_AMBER13 天前
Leetcode 158 数组中的第K个最大元素 | 查找和最小的 K 对数字
javascript·数据结构·算法·leetcode·
汀、人工智能17 天前
[特殊字符] 第100课:任务调度器
数据结构·算法·数据库架构·贪心··任务调度器
老四啊laosi19 天前
[C++进阶] 24. 哈希表封装unordered_map && unordered_set
c++·哈希表·封装·unordered_map·unordered_set
汀、人工智能19 天前
[特殊字符] 第95课:冗余连接
数据结构·算法·链表·数据库架构··冗余连接