Java 算法題 實現出現次數最多的整數

原題

問題描述
  編寫一個程序,讀入一組整數,這組整數是按照從小到大的順序排列的,它們的個數N也是由用戶輸入的,最多不會超過20。然後程序將對這個數組進行統計,把出現次數最多的那個數組元素值打印出來。如果有兩個元素值出現的次數相同,即並列第一,那麼只打印比較小的那個值。
  輸入格式:第一行是一個整數N,N £ 20;接下來有N行,每一行表示一個整數,並且按照從小到大的順序排列。
  輸出格式:輸出只有一行,即出現次數最多的那個元素值。
輸入輸出樣例
樣例輸入
5
100
150
150
200
250
樣例輸出
150

import java.util.HashMap;
import java.util.Scanner;

public class NumberRate {
	public static void main(String[] args) {
		Scanner sc=new Scanner(System.in);
		int num=sc.nextInt();
		int[] a=new int[num];
		int Max=0;
		int temp=0;
		HashMap<Integer, Integer> map=new HashMap<Integer, Integer>();
		for(int i=0;i<num;i++) {
			a[i]=sc.nextInt();
			if(!map.containsKey(a[i])) {
				map.put(a[i], 0);
			}
			map.put(a[i], (map.get(a[i])+1));
			if(Max<map.get(a[i])) {
				Max=map.get(a[i]);
			}
		}
		for(int i=0;i<num;i++) {
			if(map.get(a[i])==Max) {
				temp=i;
				break;
			}
		}
		System.out.println(a[temp]);
	}
}

在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章