首页 > 其他分享 >前k个高频元素(优先队列)

前k个高频元素(优先队列)

时间:2025-01-04 14:55:22浏览次数:1  
标签:优先 nums 队列 res 元素 int vector mp 高频

给你一个整数数组 nums 和一个整数 k ,请你返回其中出现频率前 k 高的元素。你可以按 任意顺序 返回答案。

 

示例 1:

输入: nums = [1,1,1,2,2,3], k = 2
输出: [1,2]

示例 2:

输入: nums = [1], k = 1
输出: [1]



class Solution {
public:
    vector<int> topKFrequent(vector<int>& nums, int k) {
        int n = nums.size();
        map<int,int> mp;
        //建立元素与出现次数的映射关系
        for(int i=0;i<n;i++){
            mp[nums[i]]++;
        }
        //priority_queue提供了一个最大堆(默认情况下)的功能,即降序排序
        priority_queue<pair<int,int>> q;
        for(auto it = mp.begin();it!=mp.end();it++){
            q.push({it->second,it->first});
        }
        vector<int> res;
        while(k--){
            res.push_back(q.top().second);
            q.pop();
        }
        return res;
    }
};

 

标签:优先,nums,队列,res,元素,int,vector,mp,高频
From: https://www.cnblogs.com/yueshengd/p/18651899

相关文章

  • 高频 Python 面试题解析(附代码解释)
    高频Python面试题解析(附代码解释)引言Python作为目前最受欢迎的编程语言之一,广泛应用于Web开发、数据分析、人工智能等领域。在面试中,Python的基础知识、数据结构、算法等方面的高频问题总是被考察。因此,在这篇文章中,我们将深入剖析一些常见的Python面试题,帮助你轻松应对面试挑......
  • LeetCode232.用栈实现队列
    题目:请你仅使用两个栈实现先入先出队列。队列应当支持一般队列支持的所有操作(push、pop、peek、empty):实现MyQueue类:voidpush(intx)将元素x推到队列的末尾intpop()从队列的开头移除并返回元素intpeek()返回队列开头的元素booleanempty()如果队......
  • 力扣刷题:栈和队列OJ篇(下)
    大家好,这里是小编的博客频道小编的博客:就爱学编程很高兴在CSDN这个大家庭与大家相识,希望能在这里与大家共同进步,共同收获更好的自己!!!目录1.括号匹配问题(1)题目描述(2)解题思路2.循环队列(1)题目描述(2)解题思路快乐的时光总是短暂,咱们下篇博文再见啦!!!如果小编的文章会对......
  • 高频手术设备GB 9706.202-2021第201.8.10.4.2条款手术连接用电线是如何扭曲试验
    在现代外科手术领域,技术的进步带来了革命性的变化,其中高频手术设备(也称为高频电刀或电切刀)的应用尤为显著。这种设备以其精确的切割能力和有效的凝血功能,已经成为手术室中不可或缺的工具。高频手术设备通过利用高频电流的热效应,不仅能够迅速切割组织,还能在切割的同时实现止血,大......
  • 深入理解 Java Set 集合:原理、应用与高频面试题解析
    深入理解JavaSet集合:原理、应用与高频面试题解析在Java中,Set是一种重要的集合接口,用于存储不重复的元素。无论是在实际开发中,还是在面试场景中,Set都是一个高频的知识点。本篇文章将详细介绍JavaSet集合的基础知识、常见实现类、应用场景以及面试常考题,最后通过总结帮助......
  • python中的优先队列
    在Python中,优先队列(PriorityQueue)是一个可以随时获取队列中最大(或最小)元素的数据结构。Python的标准库heapq提供了一个实现最小堆的优先队列,默认情况下是最小堆,但可以通过一些技巧来实现最大堆。优先队列在算法中常用于求解最短路径、合并有序链表、求解k个最小/最大的元......
  • Java高频面试题(2025最新版)
    真心希望能够把这个分享做好,真正能够帮助到有需要的朋友!如果觉得对你有帮助的话,还请点个免费的赞,这是对我最大的鼓励,感谢各位一起同行,共勉!持续更新中!!!如有错误望指正1、java中的Math.round(-11.3)等于多少?-11Math提供了三个与取整有关的方法:ceil、floor、round(1)ceil:向上......
  • 零基础被迫参加CTF比赛?CTF高频解题技巧与经验分享
    CTF(CaptureTheFlag)比赛中的高频解题技巧通常涵盖了以下几类技术,涉及从逆向工程、二进制漏洞利用到Web安全、密码学等多个领域。以下是一些高频解题技巧:1.逆向工程(ReverseEngineering)静态分析:通过阅读二进制文件的源代码或反编译代码(如使用......
  • 零基础被迫参加CTF比赛?CTF高频解题技巧与经验分享
    CTF(CaptureTheFlag)比赛中的高频解题技巧通常涵盖了以下几类技术,涉及从逆向工程、二进制漏洞利用到Web安全、密码学等多个领域。以下是一些高频解题技巧:1.逆向工程(ReverseEngineering)静态分析:通过阅读二进制文件的源代码或反编译代码(如使用......
  • Coravel:一个可轻松实现任务调度、队列、邮件发送的开源项目
    推荐一个轻量级的任务调度开源项目。01项目简介Coravel是一个.NET开源任务调度库,只需简单代码、几乎零配置就可以实现多种功能柜,如任务调度、队列、缓存、事件广播和邮件发送等。该项目特点就是让这些通常复杂的功能变得易于访问和使用,同时提供简洁、直观的语法。02核心功能......