1. 输入格式
输入第一行包含两个整数 n 和 m,表示矩阵的大小(1 <=n,m <=10³)。
接下来 n 行,每行包含 m 个正整数,表示矩阵中的元素。
2. 输出格式
输出一个整数,表示矩阵中出现次数超过一半的数字。
3. 题解
(1)解题思路:枚举整个矩阵中的所有数字,用map来存储所有数字出现的次数,最后遍历map找出出现次数>n*m/2的那个数字即可。
4. 代码
点击查看代码
#include<bits/stdc++.h>
using namespace std;
map<int,int>mp;
int main()
{
ios::sync_with_stdio(0),cin.tie(0),cout.tie(0);
int n,m;cin>>n>>m;cin.ignore();
for(int i=0;i<n*m;i++)
{
int x;cin>>x;cin.ignore();
mp[x]++;
}
for(auto &i:mp)
{
if(i.second>(n*m/2)) cout<<i.first<<'\n';
}
return 0;
}

浙公网安备 33010602011771号