描述
编写一个程序,读入一组整数,这组整数是按照从小到大的顺序排列的,它们的个数N也是由用户输入的,最多不会超过20。然后程序将对这个数组进行统计,把出现次数最多的那个数组元素值打印出来。如果有两个元素值出现的次数相同,即并列第一,那么只打印比较小的那个值。 |
输入
第一行是一个整数N,N<= 20;接下来有N行,每一行表示一个整数,并且按照从小到大的顺序排列。 |
输出
难度
输入示例
输出示例
完成代码:
1 import java.util.Scanner;
2
3 import java.util.Arrays;
4
5 public class Demo01 {
6 static long max = 0;
7 static long maxTimes = 1;
8 public static void main(String[] args) {
9 Scanner sc = new Scanner(System.in);
10 int N = sc.nextInt();
11 if(N < 1 || N > 20) System.exit(0);
12 long a[] = new long[N]; //设一个数组专门用来存放输入整数的次数
13 Arrays.fill(a, 1);//数组全为1
14 long b = sc.nextLong(); //输入的第一个整数
15 max = b;
16 for(int i = 1; i < N; i++){
17 long c = sc.nextLong(); //输入剩下的整数
18 if(c == b){ //当出现两个相同的数时
19 a[i] = a[i - 1] + 1; //次数加一
20 if(a[i] > maxTimes){ //找到次数最多的
21 maxTimes = a[i];
22 max = c;
23 }
24 }
25 b = c; //换下一个数
26 }
27 System.out.println(max);
28 sc.close();
29 }
30 }