Given an array of size n, find the majority element. The majority element is the element that appears more than ⌊ n/2 ⌋
times.
You may assume that the array is non-empty and the majority element always exist in the array.
Credits:
Special thanks to @ts for adding this problem and creating all test cases.
要求找出出现次数过半的数组元素 只要使用哈希表 进行一次遍历存储 满足hm.get(num[i])>num.length/2-1的即使所求结果 代码如下:
public class Solution {
public int majorityElement(int[] num) {
Map<Integer,Integer> hm=new HashMap<Integer,Integer>();
for(int i=0;i<num.length;i++){
if(hm.containsKey(num[i])){
if(hm.get(num[i])>num.length/2-1){
return num[i];
}else{
hm.put(num[i],hm.get(num[i])+1);
}
}else{
hm.put(num[i],1);
}
}
return num[0];
}
}