解题思路:利用HashMap得到数字在数组中出现的次数,如果次数大于数组长度的一半,则返回。该方法时间和空间复杂度都是O(1)
class Solution {
public int majorityElement(int[] nums) {
Map<Integer,Integer> map=new HashMap<>();
Integer res=0;
for(Integer i:nums){
Integer count=map.get(i);
count=count==null?1:++count;
if(count>(nums.length/2)){
res=i;
break;
}
map.put(i,count);
}
return res;
}
}