题目描述:
给定一个大小为 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;
}
};