站外题求助!
  • 板块学术版
  • 楼主yzm0325
  • 当前回复3
  • 已保存回复3
  • 发布时间2023/7/9 21:38
  • 上次更新2023/11/3 10:51:07
查看原帖
站外题求助!
804115
yzm0325楼主2023/7/9 21:38

题目描述

给出一个含有 nn(0<n≤10000<n \leq 1000)个整数的数组,请找出其中出现次数超过一半的数。数组中的数大于 −50-50 且小于 5050。

输入描述

第一行包含一个整数 nn,表示数组大小;

第二行包含 nn 个整数,分别是数组中的每个元素,相邻两个元素之间用单个空格隔开。

输出描述

如果存在这样的数,输出这个数;否则输出 no。

样例 1

样例输入 1

3
1 2 2

样例输出 1

2

代码:

#include <bits/stdc++.h>
using namespace std;
int n, cnt, a;
map <int, int> t;
int init() {
	for(int i = -50; i <= 50; i++) t[i] = 0;
}
int main() {
	init();
	cin >> n;
	for(int i = 1; i <= n; i++) {
		cin >> a;
		t[a]++;
	}
	cnt = n / 2;
	for(int i = -50; i <= 50; i++)
		if(t[i] > cnt) return cout << i, 0;
	cout << "no";
	return 0;
}

TLE 求助!

2023/7/9 21:38
加载中...