问题描述
给定n个正整数,找出它们中出现次数最多的数。如果这样的数有多个,请输出其中最小的一个。
输入格式
输入的第一行只有一个正整数n(1 ≤ n ≤ 1000),表示数字的个数。
输入的第二行有n个整数s1, s2, …, sn (1 ≤ si ≤ 10000, 1 ≤ i ≤ n)。相邻的数用空格分隔。
输出格式
输出这n个次数中出现次数最多的数。如果这样的数有多个,输出其中最小的一个。
import java.util.Arrays;
import java.util.Collections;
import java.util.Iterator;
import java.util.Scanner;
import java.util.ArrayList;
public class Main {
public static void main(String[] args) {
// TODO 自动生成的方法存根
Scanner in=new Scanner(System.in);
int n=in.nextInt();
ArrayList<Short> list=new ArrayList<Short>();//保存原数
ArrayList<Short> count=new ArrayList<Short>();//计数
for(int i=0;i<n;i++) {
short temp=in.nextShort();
if(list.contains(temp)) {//计数加一
int index=list.indexOf(temp);
count.set(index, (short)(count.get(index)+1));
}else {//添加初始计数值1
list.add(temp);
count.add((short)1);
}
}
short max=Collections.max(count);//查找出现次数最多的次数
int result=list.get(count.indexOf(max));
for(int i=0;i<count.size();i++) {
if(count.get(i).equals(max)) {
result=list.get(i)<result?list.get(i):result;
}
}
System.out.print(result);
}
}