栈与队列 Leetcode 347 前k个高频元素

栈与队列 Leetcode 347 前k个高频元素

Leetcode 347

灵活运用C++库函数,使用匿名函数排序,sort可以替换为快排实现(面试感觉可能会手撕,机考直接使用sort)

cpp 复制代码
class Solution {
public:
    vector<int> topKFrequent(vector<int>& nums, int k) {
        map<int, int> num_f;
        for(int i = 0; i < nums.size(); i++){
            num_f[nums[i]]++;
        }
        vector<pair<int, int>> num_f_vec;
        map<int, int>::iterator it;
        for(it = num_f.begin(); it != num_f.end(); it++){
            // push_back()是创建对象后在复制到vector末尾,而emplace_back是就地构建对象没有复制和移动的操作,提高复杂对象到vector的性能
            num_f_vec.emplace_back(it->first, it->second);
        }
        sort(num_f_vec.begin(), num_f_vec.end(), [](pair<int, int>& a, pair<int, int>& b){
            return a.second > b.second;
        });
        vector<int> res;
        for(int i = 0; i < k; i++){
            res.push_back(num_f_vec[i].first);
        }
        return res;
    }
};
相关推荐
voidmort几秒前
9. 微调(Fine-tuning)的数学原理
人工智能·算法·机器学习
晚风吹红霞9 分钟前
C++ stack 和 queue 完全指南:适配器模式与双端队列的奥秘
c++·算法·适配器模式
casual~24 分钟前
十六届蓝桥杯国赛个人题解
经验分享·学习·算法·蓝桥杯
he___H27 分钟前
B、B+树和vue部分知识
数据结构·vue.js·b树
方也_arkling32 分钟前
【Java-Day18】API篇-Arrays
java·算法·排序算法
吴可可1231 小时前
Curve.GetSplitCurves高效分割技巧
算法
硅谷秋水1 小时前
Qwen-VLA:跨任务、环境与机器人形态的视觉-语言-动作统一建模
人工智能·深度学习·算法·计算机视觉·语言模型·机器人
IronMurphy2 小时前
【算法五十六】84. 柱状图中最大的矩形
算法
fie88892 小时前
matlab打靶法求解两点边值优化问题
开发语言·算法·matlab