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();
    }
}

 

posted on 2016-05-17 19:34  xiezie  阅读(275)  评论(0编辑  收藏  举报

导航