日期:2014-05-20 浏览次数:20903 次
public class Test {
public static void main(String[] args) {
int[] array = {3,4,3,2,-1,3,3,3};
List<Integer> list = search(array);
for(Integer i:list){
System.out.print(i+" ");
}
}
public static List<Integer> search(int[] array){
Map<Integer, List<Integer>> map = new HashMap<Integer, List<Integer>>();
for(int i=0;i<array.length;i++){
//添加出现者和其出现位置
if(map.containsKey(array[i])){
map.get(array[i]).add(i);
}else{
List<Integer> list = new ArrayList<Integer>();
list.add(i);
map.put(array[i], list);
}
}
for(Integer i:map.keySet()){
double percent = (double)map.get(i).size()/(double)array.length;
if(percent>0.5){
return map.get(i);
}
}
//如果一个数组中没有支配者返回-1
List<Integer> list = new ArrayList<Integer>();
list.add(-1);
return list;
}
}