LeetCode刷题---哈希表---347
- 游戏开发
- 2025-08-28 20:12:02

前 K 个高频元素
347. 前 K 个高频元素 - 力扣(LeetCode)
题目:给你一个整数数组 nums 和一个整数 k ,请你返回其中出现频率前 k 高的元素。你可以按 任意顺序 返回答案。
示例 1:
输入: nums = [1,1,1,2,2,3], k = 2 输出: [1,2]示例 2:
输入: nums = [1], k = 1 输出: [1]提示:
1 <= nums.length <= 105k 的取值范围是 [1, 数组中不相同的元素的个数]题目数据保证答案唯一,换句话说,数组中前 k 个高频元素的集合是唯一的 自己的思路和代码 思路:其实很简单的一道题。无非就是设置两个哈希表,第一个哈希表(不允许重复)记录每个元素已经每一个元素出现的次数。第二个哈希表(允许重复),将第一个哈希表的第一维和第二维进行对调。按序输出就可以了。
代码: class Solution { public: vector<int> topKFrequent(vector<int>& nums, int k) { unordered_map<int, int> table; multimap<int, int> standard; vector<int> result; for(int i=0; i<nums.size(); i++) { table[nums[i]]++; } for(auto itr=table.begin(); itr!=table.end(); itr++) { standard.insert({itr->second, itr->first}); } int sum = 1; for(auto itr=standard.rbegin(); itr!=standard.rend(); itr++) { if(sum<=k) result.push_back(itr->second); sum++; //printf("%d %d\n", itr->first, itr->second); } return result; } };LeetCode刷题---哈希表---347由讯客互联游戏开发栏目发布,感谢您对讯客互联的认可,以及对我们原创作品以及文章的青睐,非常欢迎各位朋友分享到个人网站或者朋友圈,但转载请说明文章出处“LeetCode刷题---哈希表---347”