栈与队列 Leetcode 347 前k个高频元素
灵活运用C++库函数,使用匿名函数排序,sort可以替换为快排实现(面试感觉可能会手撕,机考直接使用sort)
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;
}
};
本站资源均来自互联网,仅供研究学习,禁止违法使用和商用,产生法律纠纷本站概不负责!如果侵犯了您的权益请与我们联系!
转载请注明出处: 免费源码网-免费的源码资源网站 » 栈与队列 Leetcode 347 前k个高频元素
发表评论 取消回复