347. 前 K 個高頻元素

东岸發表於2024-05-10

給你一個整數陣列 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) {
        unordered_map<int,int>pin;
        for(int num:nums)
        {
            pin[num]++;
        }
        vector<pair<int,int>>pinV(pin.begin(),pin.end());
        sort(pinV.begin(),pinV.end(),[](pair<int,int>&a,pair<int,int>&b){
            return a.second>b.second;
        });
        vector<int>re;
        for(int i=0;i<k;i++)
        {
            re.push_back(pinV[i].first);
        }
        return re;


    }
};

相關文章