文章

34

粉丝

9

获赞

5

访问

8.8k

头像
找出众数 题解:方法一:正常数组+方法二:MAP runtime超时大部分是数组小了
P2014
发布于2024年6月28日 20:24
阅读数 222

map容器进行遍历

#include <iostream>
#include <map>

using namespace std;

int main(){
	map<int,int> mymap;
	
	int n,m;
	cin >> n;
	m = n;
	
	while(n --){
		int t;
		cin >> t;
		mymap[t] ++;
	}
	
	map<int,int>::iterator it;
	for(it = mymap.begin();it != mymap.end();it ++){
		if(it->second > m / 2){
			cout << it->second <<  endl;
		}
	}	
	
	return 0;
}

正常数组

#include <iostream>
#include <string.h>

using namespace std;

const int N = 1e5 + 10;

int main(){
	int n;
	int a[N],b[N];
	memset(b,0,sizeof(b));
	
	cin >> n;
	for(int i = 0;i < n;i ++){
		cin >> a[i];
		b[a[i]] ++;
	}
	
	for(int i = 0;i < n;i ++){
		if(b[a[i]] > n / 2){
			cout << a[i] << endl;
			b[a[i]] = 0;
		}
	}
	return 0;
}

 

登录查看完整内容


登录后发布评论

暂无评论,来抢沙发