思路:

  1. 使用哈希,key值为数组元素,value值为出现次数,组成新的哈希数据map;
  2. 在map中查找value值>array.length/2;

注意:

  1. 定义哈希数据类型: HashMap<Integer,Integer> map = new HashMap<>();
  2. 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;
}

}