力扣-栈与队列-347 前k个高频元素

思路

利用优先队列进行排序,然后利用multiset对count进行排序,最后收集k个高频元素就行

代码

cpp 复制代码
class Solution {
public:

    vector<int> topKFrequent(vector<int>& nums, int k) {
        priority_queue<int> pq;
        for(int i = 0; i < nums.size(); i++){
            pq.push(nums[i]);
        }
        multimap<int, int > myMap;
        while(!pq.empty()){
            int count = 0;
            int value = pq.top();
            while(!pq.empty() && pq.top() == value){
                pq.pop();
                count++;
            }
            pair<int, int> p = {count, value};
            myMap.insert(p);
        }
        vector<int> res;
        for(auto it = myMap.rbegin(); k-- ; it++){
            res.push_back(it->second);
        }
        
        return res;

    }
};
相关推荐
明明如月学长14 分钟前
什么你不知道 Cherry Studio 有快捷助手?
算法
拳里剑气17 分钟前
C语言:顺序表(上)
c语言·开发语言·数据结构·学习方法
Vegetable_Dragon24 分钟前
数论1.01
算法
Star在努力29 分钟前
15-C语言:第15天笔记
c语言·笔记·算法
我有一计3331 小时前
【算法笔记】5.LeetCode-Hot100-矩阵专项
人工智能·算法·程序员
行然梦实1 小时前
KnEA(Knee-point-driven Evolutionary Algorithm)简介
人工智能·算法·机器学习
qq_513970441 小时前
力扣 hot100 Day58
算法·leetcode
积极向上的zzz1 小时前
java中一些数据结构的转换
java·开发语言·数据结构
每天都在想吃啥2 小时前
day22 哈希表和二叉树
数据结构·哈希算法·散列表
liulilittle2 小时前
DDD领域驱动中瘦模型与富态模型的核心区别
开发语言·c++·算法·ddd·领域驱动·思想