/**
* 一个字符串ID序列,其中有一个重复次数在一半以上,找出这个ID,时间复杂度 O(n)
*
*/
public class WaterKing {
public static String getMost(String[] names){
int times = 0;
int size = names.length;
String current = null;
for(int i=0; i<size; i++){
if(times == 0){
current = names[i];
times = 1;
}else{
if(current.equals(names[i])){
times++;
}else{
times--;
}
}
}
return current;
}
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
String[] names = {"aa", "bb", "cc", "dd", "cc", "aa", "bb", "cc", "dd", "cc", "cc","dd", "cc", "cc", "aa", "cc"};
String waterKing = WaterKing.getMost(names);
System.out.println(waterKing);
}
}