题目描述:
给定一个大小为 n 的整数数组,找出其中所有出现超过 ⌊ n/3 ⌋ 次的元素。
做法:使用关联容器map,对元素计数,用迭代器遍历map,找出出现超过 ⌊ n/3 ⌋ 次的元素。
代码:
class Solution {
public:
vector<int> majorityElement(vector<int>& nums) {
map<int,int> M;
int len=nums.size()/3;
vector<int>::iterator it;
map<int,int>::iterator is;
vector<int> result;
for(it=nums.begin();it!=nums.end();it++)
{
if(M.count(*it)==0)M[*it]=1;
else M[*it]++;
}
for(is=M.begin();is!= M.end();is++){
if(is->second>len)result.push_back(is->first);
return result;
}
};
本文介绍如何利用C++ map数据结构,通过迭代计算数组中每个元素的出现次数,并找出超过n/3次的元素。适合理解关联容器在解决计数问题中的应用。
343

被折叠的 条评论
为什么被折叠?



