Leetcode Top K Frequent Elements
2016-12-26 04:48
295 查看
题意:给出出现频数前K个的数字。
思路:统计频数,并将数字按频数排序。
class Solution {
public:
vector<int> topKFrequent(vector<int>& nums, int k) {
map<int, int> m;
for(int i = 0; i < nums.size(); ++ i){
m[nums[i]] ++;
}
vector<pair<int, int> > p;
pair<int, int> temp;
std::map<int, int>::iterator it;
for(it = m.begin(); it != m.end(); ++ it) {
temp.first = it->first;
temp.second = it->second;
p.push_back(temp);
}
std::sort(p.begin(), p.end(), [](const pair<int, int> a, const pair<int, int> b){return a.second > b.second;});
vector<int> re;
for(int i = 0; i < k; i ++) {
re.push_back(p[i].first);
}
return re;
}
};
思路:统计频数,并将数字按频数排序。
class Solution {
public:
vector<int> topKFrequent(vector<int>& nums, int k) {
map<int, int> m;
for(int i = 0; i < nums.size(); ++ i){
m[nums[i]] ++;
}
vector<pair<int, int> > p;
pair<int, int> temp;
std::map<int, int>::iterator it;
for(it = m.begin(); it != m.end(); ++ it) {
temp.first = it->first;
temp.second = it->second;
p.push_back(temp);
}
std::sort(p.begin(), p.end(), [](const pair<int, int> a, const pair<int, int> b){return a.second > b.second;});
vector<int> re;
for(int i = 0; i < k; i ++) {
re.push_back(p[i].first);
}
return re;
}
};
相关文章推荐
- leetcode 347 Top K Frequent Elements C++
- LeetCode 347 Top K Frequent Elements (HashMap && TreeMap 或 PriorityQueue 推荐)
- LeetCode No.347 Top K Frequent Elements
- Java [Leetcode 347]Top K Frequent Elements
- LeetCode Top K Frequent Elements
- LeetCode "Top K Frequent Elements"
- 【Leetcode】Top K Frequent Elements
- leetcode347 Top K Frequent Elements java
- leetcode-347-Top K Frequent Elements
- Top K Frequent Elements=-leetcode
- [LeetCode][Python]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 347 Top K Frequent Elements
- leetcode347:Top K Frequent Elements(medium)
- LeetCode: Top K Frequent Elements
- [leetcode]Top K Frequent Elements
- LeetCode: Top K Frequent Elements