#include<iostream> #include<map> #include<vector> using namespace std; vector<int> findMax(int arrA[], int arrAsize, int cnt){ vector<int> res; map<int,int> mp; for (int i = 0; i < arrAsize; ++i) { if (mp.find(arrA[i]) != mp.end()){ mp[arrA[i]]++; } else{ mp[arrA[i]]=1; } } //按照出现频率排序 multimap<int,int> multimp; map<int,int>::iterator it; for(it=mp.begin();it!=mp.end();it++){ multimp.insert(pair<int,int>(it->first,it->second)); } for (auto it = multimp.begin(); it !=multimp.end() ; ++it) { if ((it->second)>=cnt) res.push_back(it->first); } return res; } int main(void) { //海量数据 int *pInt = new int[7]; pInt[0]=100; pInt[1]=100; pInt[2]=101; pInt[3]=100; pInt[4]=102; pInt[5]=100; pInt[6]=101; const vector<int> &vector = findMax(pInt, 7, 2); for (int i = 0; i < vector.size(); ++i) { cout<<vector[i]<<endl; } }
T3
最新推荐文章于 2025-05-02 14:29:44 发布