Leetcode 347. 前 K 个高频元素 中等 堆排序
题目:
给你一个整数数组 nums 和一个整数 k ,请你返回其中出现频率前 k 高的元素。你可以按 任意顺序 返回答案。
示例 1:
输入: nums = [1,1,1,2,2,3], k = 2
输出: [1,2]
思路:
输出频率前k高的元素。
使用最小堆,堆中保存的最后k个元素就是所求的值。
class Solution { public: vector<int> topKFrequent(vector<int>& nums, int k) { unordered_map<int,int> m; for(auto n:nums){ m[n]++; } priority_queue<Node> q; for(auto it:m){ q.push(Node(it.first,it.second)); } while(q.size()>k){ q.pop(); } vector<int> ret; while(!q.empty()){ Node node=q.top(); q.pop(); ret.push_back(node.num); } return ret; } struct Node{ int num; int freq; Node(int n,int f){ num=n; freq=f; } bool operator<(const Node& b)const{ return freq>b.freq; } }; };
联系方式:emhhbmdfbGlhbmcxOTkxQDEyNi5jb20=
分类:
leetcode
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· DeepSeek 开源周回顾「GitHub 热点速览」
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
2018-03-21 ubuntu移植jsoncpp到Android平台(转)
2018-03-21 cannot use 'throw' with exceptions disabled(转)