本文主要是介绍LeetCode347. Top K Frequent Elements,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
文章目录
- 一、题目
- 二、题解
一、题目
Given an integer array nums and an integer k, return the k most frequent elements. You may return the answer in any order.
Example 1:
Input: nums = [1,1,1,2,2,3], k = 2
Output: [1,2]
Example 2:
Input: nums = [1], k = 1
Output: [1]
Constraints:
1 <= nums.length <= 105
-104 <= nums[i] <= 104
k is in the range [1, the number of unique elements in the array].
It is guaranteed that the answer is unique.
Follow up: Your algorithm’s time complexity must be better than O(n log n), where n is the array’s size.
二、题解
class Solution {
public:vector<int> topKFrequent(vector<int>& nums, int k) {unordered_map<int,int> map;priority_queue<pair<int,int>> q;for(auto x:nums){map[x]++;}for(auto it = map.begin();it != map.end();it++){q.push({it->second,it->first});}vector<int> res;while(!q.empty() && k){res.push_back(q.top().second);q.pop();k--;}return res;}
};
这篇关于LeetCode347. Top K Frequent Elements的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!