问题描述
给定n个正整数,找出它们中出现次数最多的数。如果这样的数有多个,请输出其中最小的一个。
输入的第二行有n个整数s 1, s 2, …, s n (1 ≤ s i ≤ 10000, 1 ≤ i ≤ n)。相邻的数用空格分隔。
10 1 10 20 30 20
解题思路
用两个数组,一个数组用来存储数据,一个数组用来计算每个数字出现的次数。计算的时候用双重for循环,一层用来控制数字,一层用来计数
代码
public class Main {
public static void main(String[] args) {
// TODO Auto-generated method stub
maxCount();
}
public static void maxCount(){
Scanner input = new Scanner(System.in);
int n=input.nextInt();
int[] a = new int[n];//用来输入
int[] b = new int[n];//用来确定a[i]中每个数字出现了几次
for(int i=0;i<n;i++){
b[i]=0;
a[i]=input.nextInt();
}
for(int i=0;i<n;i++){
for(int j=0;j<n;j++){
if(a[i]==a[j]){
b[i]++;
}
}
}
int num=0,time=0;
for(int i=0;i<n;i++){
if(b[i]>num){
time=b[i];
num=a[i];
}
}
System.out.println(num+" "+time);
}
}