代码随想录 Leetcode347前 K 个高频元素

题目:

代码随想录 Leetcode347前 K 个高频元素_第1张图片


代码(首刷看解析 2024年1月22日):

class Solution {
public:
    class Mycomparison{
    public:
        bool operator()(const pair& lhs,const pair& rhs) {
            return lhs.second > rhs.second;
        }
    };
    vector topKFrequent(vector& nums, int k) {
        unordered_map map;
        for (int i = 0; i < nums.size(); ++i) {
            map[nums[i]]++;
        }

        priority_queue,vector>,Mycomparison> pri_que;
        for (unordered_map::iterator it = map.begin(); it != map.end(); it++) {
            pri_que.push(*it);
            if (pri_que.size() > k) {
                pri_que.pop();
            }
        }
        vector result(k);
        for (int i = k - 1; i >= 0; i--) {
            result[i] = pri_que.top().first;
            pri_que.pop();
        }
        return result;
    }
};

        优先队列定义方法搞清楚~,尤其是第三个参数的自定义

你可能感兴趣的:(#,leetcode,---medium,前端,算法,javascript)