①暴力解决
class Solution {
public int majorityElement(int[] nums) {
int n=nums.length;
Map<Integer,Integer> map=new HashMap<>();
for(int i:nums){
map.put(i,map.getOrDefault(i,0)+1);
}
for(Map.Entry<Integer,Integer> entry:map.entrySet()){
if(entry.getValue()>n/2) return entry.getKey();
}
return 0;
}
}
②排序法
class Solution {
public int majorityElement(int[] nums) {
int n=nums.length-1;
Arrays.sort(nums);
return nums[n/2];
}
}
③摩尔投票法
class Solution {
public int majorityElement(int[] nums) {
int vote=0;int selectNum=0;
for(int num:nums){
if(vote==0) selectNum=num;
vote+=selectNum==num?+1:-1;
}
return selectNum;
}
}