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;
    }
};
相关推荐
徐子童14 小时前
数据结构---优先级队列(堆)
java·数据结构·面试题·优先级队列··topk问题
深思慎考1 天前
从合并两个链表到 K 个链表:分治思想的递进与堆优化
数据结构·链表·递归··队列·合并链表
再睡一夏就好3 天前
【C++闯关笔记】STL:deque与priority_queue的学习和使用
java·数据结构·c++·笔记·学习·
派大星爱吃猫3 天前
堆的概念、结构与应用详解
c语言·数据结构·
GGBondlctrl5 天前
【数据结构】关于哈希表内部原理,你到底了解多少???(超详解)
数据结构·哈希表·哈希表冲突避免·哈希表冲突解决
代码充电宝5 天前
LeetCode 算法题【简单】290. 单词规律
java·算法·leetcode·职场和发展·哈希表
Dream it possible!7 天前
LeetCode 面试经典 150_栈_有效的括号(52_20_C++_简单)(栈+哈希表)
c++·leetcode·面试··哈希表
小许学java11 天前
数据结构-Map和Set
数据结构·算法·set·map·哈希表·哈希冲突·哈希桶
自信的小螺丝钉19 天前
Leetcode 347. 前 K 个高频元素 堆 / 优先队列
算法·leetcode·优先队列·
自信的小螺丝钉20 天前
Leetcode 295. 数据流的中位数 堆
leetcode·