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.
public class Solution {
public int majorityElement(int[] nums) {
if(nums.length==0)
return 0;
HashMap<Integer,Integer> hash=new HashMap<>();
List<Integer> inte=new ArrayList<>();
for(int i=0;i<nums.length;i++){
if(hash.get(nums[i])!=null){
int nu = hash.get(nums[i]);
hash.put(nums[i],++nu);
}
else{
hash.put(nums[i],1);
inte.add(nums[i]);
}
}
int max=0,maxnum=0;
for(int i=0;i<inte.size();i++){
int temp=hash.get(inte.get(i));
if(temp>max){
max=temp;
maxnum=inte.get(i);
}
}
if(max>(nums.length>>1))
return maxnum;
else
return 0;
}
}