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 天前
【Java】HashMap的详细介绍
java·数据结构·哈希表
夏天ccys6 天前
LeetCode Day5 -- 栈、队列、堆
算法·leetcode···队列
珍珠是蚌的眼泪8 天前
LeetCode_哈希表
leetcode·哈希表·快乐数·字母异位词
Dream it possible!12 天前
LeetCode 面试经典 150_数组/字符串_O(1)时间插入、删除和获取随机元素(12_380_C++_中等)(哈希表)
c++·leetcode·面试·哈希表
junjunyi20 天前
高效实现 LRU 缓存机制:双向链表与哈希表的结合
java·哈希表·双向链表
小新学习屋22 天前
《剑指offer》-数据结构篇-哈希表/数组/矩阵/字符串
数据结构·leetcode·哈希表
Alfred king23 天前
面试150 IPO
面试·职场和发展·贪心·数组··排序
Tisfy25 天前
LeetCode 1695.删除子数组的最大得分:滑动窗口(哈希表)
算法·leetcode·散列表·题解·双指针·滑动窗口·哈希表
Alfred king1 个月前
面试150 LRU缓存
链表·缓存·哈希表·lru·双向链表
英雄哪里出来2 个月前
《哈希表》K倍区间(解题报告)
数据结构·算法·散列表·哈希表·解题报告