力扣数组题:数组中占比超过一半的元素称之为主要元素。给定一个整数数组,找到它的主要元素。若没有,返回-1。
class Solution {
public:
int majorityElement(vector<int>& nums) {
int a=nums[0],b=0;
sort(nums.begin(),nums.end(),less<int>());
if(nums.size() == 1)
return nums[0];
else{
for(int i=0;i<nums.size();i++){
if(a == nums[i]){
b++;
}else{
if(i == nums.size()-1){
a = -1;
}else{
a = nums[i];
b = 1;
}
}
if(b*2 >= nums.size()){
break;
}else{
if(i == nums.size()-1){
a = -1;
}
}
}
return a;
}
}
};