栈与队列 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;
    }
};
相关推荐
Jasmine_llq19 分钟前
《P2656 采蘑菇》
算法·强连通分量·广度优先搜索(bfs)·tarjan 算法·图的缩点操作·有向无环图(dag)·最长路径
芥子沫32 分钟前
《人工智能基础》[算法篇3]:决策树
人工智能·算法·决策树
mit6.82433 分钟前
dfs|位运算
算法
苏纪云34 分钟前
算法<C++>——双指针 | 滑动窗口
数据结构·c++·算法·双指针·滑动窗口
保持低旋律节奏35 分钟前
算法——二叉树、dfs、bfs、适配器、队列练习
算法·深度优先·宽度优先
Y2003091637 分钟前
U-net 系列算法总结
人工智能·算法·目标跟踪
代码不停38 分钟前
Java二分算法题目练习
java·算法
等一个自然而然的晴天~40 分钟前
晴天小猪历险记之Hill---Dijkstra算法
算法
Brookty40 分钟前
【算法】位运算| & ^ ~ -n n-1
学习·算法·leetcode·位运算
.格子衫.40 分钟前
023数据结构之线段树——算法备赛
java·数据结构·算法