Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 178885 Accepted Submission(s): 71512
Problem Description
Contest time again! How excited it is to see balloons floating around. But to tell you a secret, the judges’ favorite time is guessing the most popular problem. When the contest is over, they will count the balloons of each color and find the result.
This year, they decide to leave this lovely job to you.
Input
Input contains multiple test cases. Each test case starts with a number N (0 < N <= 1000) – the total number of balloons distributed. The next N lines contain one color each. The color of a balloon is a string of up to 15 lower-case letters.
A test case with N = 0 terminates the input and this test case is not to be processed.
Output
For each case, print the color of balloon for the most popular problem on a single line. It is guaranteed that there is a unique solution for each test case.
Sample Input
5
green
red
blue
red
red
3
pink
orange
pink
0
Sample Output
red
pink
解析:
这道题的要求其实很简单,给定一个数据集的个数,寻找在这个数据集中出现最多的元素(气球的颜色)
一开始的思路是使用数组,但是卡在了类型的问题上(毕竟不是PHP),最后想到了使用自定义类来声明一个自定义类型的数组(C/C++使用的是结构体)
第一步:定义一个自定义类
注意的几个点:
1.因为后续会使用到快排的函数 Arrays.sort(),所以需要做一些必要的操作
①在自定义类中,重写toString方法:该方法决定输出;
②该类实现Comparable接口
③实现接口后,重写compareTo方法:该方法决定排序的根基(Arrays.sort())
④写明set方法,后续会用到
class Node1 implements Comparable{
int no=0;
String name=null;
public Node1(){
return;
}
public Node1(String name,int no){
this.name=name;
this.no=no;
}
public void setName(String a){
name=a;
}
public void setNo(int a){
no=a;
}
/*public int compareTo(Object o) {//指定内容升序排序
if (this.no<((Node1)o).no)
return -1;
else if (this.no>((Node1)o).no)
return 1;
else return 0;
}*/
public int compareTo(Object o) {
//简化