思路: 采用HashMap

  • 如果存在,则 map.put(val, count+1),判断count+1 > array.length/2,是则返回当前元素值val;
  • 如果不存在,则添加进map (val, 1)。
import java.util.*;

public class Solution {
    public int MoreThanHalfNum_Solution(int [] array) {
        // 采用hashmap,如果不存在,则添加进map (val, 1)
        // 如果存在,则 map.put(val, count+1),判断count+1 > array.length/2,是则返回
        HashMap<Integer, Integer> map = new HashMap<>();
        for(int i=0; i<array.length; i++){
            if(map.containsKey(array[i])){
                map.put(array[i], map.get(array[i])+1);
                if(map.get(array[i]) > array.length/2) return array[i];
            }else{
                map.put(array[i], 1);
            }
        }
        return array[0];
    }
}