HDOJ-ACM1004(JAVA)
转载声明:原文转自http://www.cnblogs.com/xiezie/p/5502876.html
JAVA语言实现:
拿到题目第一反应是用HashMap实现,但是感觉用HashMap实在太浪费了,而且必须用Integer或者String等对象作为value值。
如果用ArrayList实现的话(当然直接用String数组也行),其实简单快捷,用到的int数组其实只是作为一个类似简单hash里的思路。
代码如下:
import java.util.*; import java.io.*; public class Main{ public static void main(String[] arg){ Scanner scan = new Scanner(new BufferedInputStream(System.in)); ArrayList<String> list = new ArrayList<>(); while(scan.hasNextInt()){ int n = scan.nextInt(); if(n==0){ break; } list.clear(); int[] a = new int[1000]; while(n--!=0){ String s = scan.next(); if(!list.contains(s)){ list.add(s); } a[list.indexOf(s)]++; } int max= 0; for(int i = 1 ; i != 1000 ; i ++ ){ if(a[i]==0){ break; } if(a[i]>a[max]){ max = i; } } System.out.println(list.get(max)); } scan.close(); } }
让蔷薇开出一种结果~