解题思路
先排序,这样相同的元素就相邻了,然后依次统计个数,如果个数大于N/2就说明是主要元素
代码
class Solution {
public int majorityElement(int[] nums) {
int n = nums.length;
Arrays.sort(nums);
int cal = 0,tem = nums[0];//tem记录当前数字,cal用来记录当前数字出现次数
for(int i=0;i<n;i++){
if(nums[i]==tem){
cal++;
}else{
tem = nums[i];
cal=1;
}
if(cal> n/2){//主要元素出现
return tem;
}
}
return -1;
}
}