思路:
- 使用哈希,key值为数组元素,value值为出现次数,组成新的哈希数据map;
- 在map中查找value值>array.length/2;
注意:
- 定义哈希数据类型: HashMap<Integer,Integer> map = new HashMap<>();
- key的数组为:map.keySet();
import java.util.*; public class Solution {
public int MoreThanHalfNum_Solution(int [] array) {
int res=0;
// if(array.length==1) return array[0];
int threshold=array.length/2;
HashMap<Integer,Integer> map = new HashMap<>();
for(int i=0;i<array.length;i++){
//单次出现的值
if(!map.keySet().contains(array[i])){
map.put(array[i], 1);
}
else {
//多次出现的值
map.put(array[i],map.get(array[i])+1);
}
if(map.get(array[i])>threshold){
res=array[i];
break;
}
}
return res;
}
}