题滴链接http://118.190.20.162/view.page?gpid=T5
问题描述
试题编号: | 201312-1 |
试题名称: | 出现次数最多的数 |
时间限制: | 1.0s |
内存限制: | 256.0MB |
问题描述: | 问题描述 给定n个正整数,找出它们中出现次数最多的数。如果这样的数有多个,请输出其中最小的一个。 输入格式 输入的第一行只有一个正整数n(1 ≤ n ≤ 1000),表示数字的个数。 输出格式 输出这n个次数中出现次数最多的数。如果这样的数有多个,输出其中最小的一个。 样例输入 6 样例输出 10 |
鄙人拙见:
- 先找出数量最多的数
- 再从中找出最小的那个
C++参考代码1.0:
#include <bits/stdc++.h>
using namespace std;
int main()
{
int n;
scanf("%d",&n);
int num[n];
for(int i = 0; i < n; i++)
{
scanf("%d",&num[i]);
}
int count[n];
for(int i = 0; i < n; i++)
{
count[i] = 0;
}
for(int i = 0; i < n; i++)
{
for(int j = i + 1; j < n; j++)
{
if(num[i] == num[j])
{
count[i] = count[i] + 1;
}
}
}
int max = -1;
for(int i = 0; i < n; i++)
{
if(count[i] > max)
{
max = count[i];
}
}
int min[n];
int t = 0;
for(int i = 0; i < n; i++)
{
if(count[i] == max)
{
min[t] = num[i];
t = t + 1;
}
}
int mmin = 999999;
for(int i = 0; i < t; i++)
{
if(min[i] < mmin)
{
mmin = min[i];
}
}
printf("%d",mmin);
return 0;
}