描述
編寫一個程序,讀入一組整數,這組整數是按照從小到大的順序排列的,它們的個數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 }