众数问题

675 词

题目描述

给定含有 n个元素的多重集合 S,每个元素在 S 中出现的次数称为该元素的重数。多重
集 S 中重数最大的元素称为众数。 
例如,S={1,2,2,2,3,5}。 
多重集 S 的众数是 2,其重数为 3。 
> 算法设计: 
> 对于给定的由 n 个自然数组成的多重集 S,计算 S 的众数及其重数。 

输入

第 1行多重集 S 中元素个数 n$(n<=2000000)$;接下来的 n行中,每行有一个不超过$1000000$的自然数 

输出

输出的第 1行给出众数,第 2 行是重数 如果有多个数出现频度一样,输出最小的那个数

样例输入

1
2
3
4
5
6
7
8
9
10
11
10
2
1
3
2
1
2
1
1
2
1

样例输出

1
2
1
5

题解

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
char[] a = new char[100000];
Scanner sc = new Scanner(System.in);
int i, n, m, x = 0, t = 0;
n = sc.nextInt();
for (i = 0; i < n; i++) {
m = sc.nextInt();
a[m]++;
}
for (i = 0; i < 100000; i++) {
if (a[i] > t) {
t = a[i];
x = i;
}
}
System.out.println(x);
System.out.println(t);
}
}