1,问题描述
试题编号: 201312-1试题名称: 出现次数最多的数
时间限制: 1.0s
内存限制: 256.0MB
问题描述:
问题描述
给定n个正整数,找出它们中出现次数最多的数。如果这样的数有多个,请输出其中最小的一个。
输入格式
输入的第一行只有一个正整数n(1 ≤ n ≤ 1000),表示数字的个数。
输入的第二行有n个整数s1, s2, …, sn (1 ≤ si ≤ 10000, 1 ≤ i ≤ n)。相邻的数用空格分隔。
输出格式
输出这n个次数中出现次数最多的数。如果这样的数有多个,输出其中最小的一个。
样例输入
6
10 1 10 20 30 20
样例输出
10
2,100分答案:
import java.util.*;
public class Main{
public static void main(String[] args){
new Main().run();
}
public void run(){
//输入数字
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
int[] arr = new int[n];
//逐个输入测试数字
for(int i = 0;i < n;i++){
arr[i] = sc.nextInt();
}
//比较出现次数
int count = 0;
// List<Integer> list = new ArrayList<Integer>();
Map<Integer,Integer> map = new HashMap<Integer,Integer>();
for(int j = 0;j < arr.length;j++){
count = 0;
for(int k = 0;k < arr.length;k++){
if(arr[j] == arr[k]){
count++;
}
}
//存入数据
map.put(arr[j],count);
}
Set<Integer> set = map.keySet();
Iterator<Integer> it = set.iterator();
int max = 0;
int value = 0;
while(it.hasNext()){
int key = it.next();
if(map.get(key) > max){
max = map.get(key);
value = key;
}
}
System.out.println(value);
}
}