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;
    }
};
相关推荐
Tisfy1 天前
LeetCode 3043.最长公共前缀的长度:哈希表(不转string)
算法·leetcode·散列表·题解·哈希表
运筹vivo@3 天前
LeetCode 2405. 子字符串的最优划分
c++·算法·leetcode·职场和发展·哈希表
谙弆悕博士4 天前
【附C源码】从零实现C语言堆数据结构:原理、实现与应用
c语言·数据结构·算法··数据结构与算法
庞轩px11 天前
第二篇:内存——你的变量到底存在哪
内存···缓存命中率·变量生命周期·字符串常量
W.W.H.13 天前
嵌入式栈堆管理与内存分配详解
内存管理···rtos·heap·stack
jieyucx14 天前
零基础入门:一文看懂哈希算法、哈希表与 Go map
golang·哈希算法·散列表·map·哈希表
qeen8720 天前
【数据结构】建堆的时间复杂度讨论与TOP-K问题
c语言·数据结构·c++·学习·
深邃-21 天前
【数据结构与算法】-二叉树(2):实现顺序结构二叉树(堆的实现),向上调整算法,向下调整算法,堆排序,TOP-K问题
数据结构·算法·二叉树·排序算法·堆排序··top-k
qeen8722 天前
【数据结构】二叉树基本概念及堆的C语言模拟实现
c语言·数据结构·c++·
雪碧聊技术25 天前
Native关键字、程序计数器、方法区
·程序计数器·方法区·native关键字