问题描述: | 问题描述 给定n个正整数,找出它们中出现次数最多的数。如果这样的数有多个,请输出其中最小的一个。 输入格式 输入的第一行只有一个正整数n(1 ≤ n ≤ 1000),表示数字的个数。 输出格式 输出这n个次数中出现次数最多的数。如果这样的数有多个,输出其中最小的一个。 样例输入 6 样例输出 10 |
package tmfon;
import java.util.HashMap;
import java.util.Map;
import java.util.Scanner;
public class Main {
@SuppressWarnings("resource")
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();// 所输入的正整数个数
Map<Integer, Integer> m = new HashMap<Integer, Integer>();// 储存正整数出现次数
int num = 0;// 暂时保存输入正整数值
int result;// 输出的结果
for (int i = 0; i < n; i++) {
num = sc.nextInt();
if (m.containsKey(num))// 判断该正整数出现过
m.put(num, m.get(num) + 1);// 是,则出现次数递增
else
m.put(num, 1);// 否,存储并置出现次数为1
}
result = num;// 将最后输入的正整数待定为结果
for (Map.Entry<Integer, Integer> e : m.entrySet())// 遍历此集合
{
if (m.get(result) < e.getValue())// 出现次数不同时
result = e.getKey();
else if (m.get(result) == e.getValue() && result > e.getKey())// 出现次数相同时
result = e.getKey();
}
System.out.println(result);
}
}