多数元素
题目 给定一个数组,找到其中的多数元素,多数元素是指在数组中出现 ⌊ n / 2 ⌋ \lfloor n/2 \rfloor ⌊n/2⌋ 次。
方法一 :利用散列表,进行计数,即<数字,出现次数>, 最后遍历散列表,找到满足的数字。
public int majorityElement(int[] nums){
double n = Math.ceil(nums.length / 2.0);
Map<Integer, Integer> dict = new HashMap<>(10);
for(int num:nums){
if(dict.get(num) == null){
dict.put(num,1);
}else{
dict.put(num,dict.get(num)+1);
}
}
for(Integer key : dict.keySet()){
if(dict.get(key) >= n){
return key;
}
}
return -1;
}