解析:该题目可以用mapreduce的wordcount思想做,就是存储键、值对,键存数字,值存该数字出现的次数,当然需要用一个变量记住出现次数超过一半的数了,说完了,开始撸起袖子干了。
public static int findAppearMoreThanHalf(
int [] arr){
int num=
0;
Map<Integer,Integer>
map =
new HashMap<>();
for(
int i:arr){
if(!
map.containsKey(i)){
map.put(i,
1);
}
else {
int n=
map.get(i);
n++;
map.put(i,n);
if(n>(arr.length/
2)){
num=i;
}
}
}
return num;
}
转载请注明原文地址: https://www.6miu.com/read-32023.html