求数组中出现次数最多的数

输出次数最多的数,以及次数:

#include<iostream>
#include<map>
#include<vector>
#include<algorithm>
using namespace std;
int main(int argc, char *argv[])
{
	int num[] = { 1, 1, 3, 4, 4, 4, 9, 9, 9, 4};
	int len = sizeof(num) / sizeof(int);
	map<int, int>m;
	vector<int>vec;
	for (int i = 0; i<len; ++i)
		m[i] = 0;
	int cnt = 999;                //cnt=0;
	for (int i = 0; i<len; ++i){
		m[num[i]]++;
		if (m[num[i]]<cnt)           // >  则是求最大
			cnt = m[num[i]];
	}
	for (map<int, int>::iterator it = m.begin(); it != m.end(); ++it)
	{
		if (it->second == cnt)
			vec.push_back(it->first);
	}
	sort(vec.begin(), vec.end());
	for (vector<int>::iterator it = vec.begin(); it != vec.end(); ++it)
	{
		cout << *it << endl;
	}
	cout << cnt << endl;
	return 0;
}

  

posted @ 2018-08-12 21:23  道微真理  阅读(332)  评论(0)    收藏  举报