import java.util.*;
import java.util.stream.*;
public class Solution {
/**
* 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
*
*
* @param numbers int整型一维数组
* @return int整型
*/
public int MoreThanHalfNum_Solution (int[] numbers) {
// write code here
Map<Integer, Integer> hm = new HashMap<>();
for (int i : numbers){
if (hm.keySet().contains(Integer.valueOf(i))){
hm.put(i, hm.get(i)+1);
}else{
hm.put(i, 1);
}
}
int maxAppearance = Collections.max(hm.values());
boolean isEven = numbers.length % 2 == 0 ? true : false;
boolean hasSolve = false;
if (isEven){
if (maxAppearance > numbers.length/2){
hasSolve = true;
}
}else{
if (maxAppearance >= numbers.length/2){
hasSolve = true;
}
}
if (hasSolve){
List<Integer> key = hm.entrySet().stream().filter(entry -> Integer.valueOf(maxAppearance).equals(entry.getValue())).map(Map.Entry::getKey).collect(Collectors.toList());
return key.get(0);
}
return -1;
}
}