leetcode-347-Top K Frequent Elements
来源:互联网 发布:家庭网络布线工 编辑:程序博客网 时间:2024/06/18 15:33
问题
题目:[leetcode-347]
思路
Map怎么对value进行排序。
参考了这篇链接[C++ STL中Map的按Key排序和按Value排序]
代码
typedef pair<int, int> Pair;bool cmp_by_value(Pair& lhs, Pair& rhs){ return rhs.second < lhs.second;}class Solution {public: vector<int> topKFrequent(vector<int>& nums, int k) { vector<int> ret; map<int, int> mapper; int sz = nums.size(); if(k > sz) return ret; for(int i = 0; i < sz; ++i){ ++mapper[nums[i]]; } vector<Pair> vec( mapper.begin(), mapper.end() ); sort( vec.begin(), vec.end(), cmp_by_value ); for(int i = 0; i < k; ++i){ ret.push_back(vec[i].first); } return ret; }};
思路1
这个题,要是不用函数对象,要写在类里面还真不行。
代码1
class Solution {public: vector<int> topKFrequent(vector<int>& nums, int k) { map<int, int> counter; int sz = nums.size(); vector<int> ret; if(!sz || k < 1) return ret; for(int i = 0; i < sz; ++i){ ++counter[ nums[i] ]; } // sort the mapper typedef pair<int, int> pair_t; vector<pair_t> vec( counter.begin(), counter.end() ); struct CmpByValue{ bool operator()(pair_t& lhs, pair_t& rhs) {return lhs.second > rhs.second; } }; sort( vec.begin(), vec.end(), CmpByValue() ); for(int i = 0; i < k; ++i ){ ret.push_back( vec[i].first ); } return ret; }private:};
当然,函数对象有一个内联的特点,据说是要比函数调用效率高。
0 0
- [leetcode-347]Top K Frequent Elements(java)
- LeetCode--No.347--Top K Frequent Elements
- LeetCode--No.347--Top K Frequent Elements
- LeetCode[347] Top K Frequent Elements
- LeetCode 347 Top K Frequent Elements
- leetcode 347 Top K Frequent Elements C++
- LeetCode No.347 Top K Frequent Elements
- leetcode-347-Top K Frequent Elements
- [Leetcode] #347 Top K Frequent Elements
- week12-leetcode #347-Top-K-Frequent-Elements
- leetcode 347[medium]--Top K Frequent Elements
- LeetCode|Top K Frequent Elements
- 【Leetcode】Top K Frequent Elements
- LeetCode:Top K Frequent Elements
- [LeetCode] Top K Frequent Elements
- LeetCode:Top K Frequent Elements
- 【leetcode】Top K Frequent Elements
- LeetCode Top K Frequent Elements
- css设置居中的常见情况
- Python学习6-高级特性
- Codeforces 505A Mr. Kitayuta's Gift 题解
- Windows10 creators update comeing
- 用原生js实现距离今年年底倒计时效果
- leetcode-347-Top K Frequent Elements
- 朴素贝叶斯用到的概率公式
- java及spring框架笔记
- 【HNOI2013】游走
- GO语言常见包的操作之json(1)
- C++模板之Vector与STL初探
- gvim安装和配置
- ApkProvisionException问题解决
- 观察者模式