问题描述
试题编号: | 201312-1 |
试题名称: | 出现次数最多的数 |
时间限制: | 1.0s |
内存限制: | 256.0MB |
问题描述: | 问题描述 给定n个正整数,找出它们中出现次数最多的数。如果这样的数有多个,请输出其中最小的一个。 输入格式 输入的第一行只有一个正整数n(1 ≤ n ≤ 1000),表示数字的个数。 输出格式 输出这n个次数中出现次数最多的数。如果这样的数有多个,输出其中最小的一个。 样例输入 6 样例输出 10 |
答题栏
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
// TODO Auto-generated method stub
int N;
Scanner s = new Scanner(System.in);
N = s.nextInt();
int[][] a = new int[2][N];//创建二维数组,0行存输入的数,1行存数出现的次数
int[] value = new int[N];
int i, j;
for(i=0; i<N; i++) {
//录入数值
a[0][i] = s.nextInt();
//判断输入的数,前面是否出现过,出现频率加一
for(j=0; j<i; j++) {
if(a[0][j]==a[0][i]) {
a[1][j]++;
break;
}
}
}
///查找出现频率最多(频率相同时数最小)的下标
int index=0;
for(i=1; i<N; i++) {
if(a[1][index]<a[1][i]) {
index = i;
}else if(a[1][index]==a[1][i]&&a[0][index]>a[0][i]) {
index = i;
}
}
//输出找到的结果,出现频率最高的数
System.out.println(a[0][index]);
}
}