169. 多数元素 - 力扣(LeetCode) (leetcode-cn.com)
class Solution {
public:
int majorityElement(vector<int>& nums) {
int n=nums.size();
if(n==1) return nums[0];
int temp=1,res;
sort(nums.begin(),nums.end());
for(int i=0;i<n-1;i++){
if(nums[i]==nums[i+1]) temp++;
else temp=1;
if(temp>=(n+1)/2) {
res=nums[i];
break;
}
}
return res;
}
};
摩尔投票:
class Solution {
public:
int majorityElement(vector<int>& nums) {
int count=1;
int maj=nums[0];
for(int i=1;i<nums.size();i++){
if(maj==nums[i]) count++;
else count--;
if(count==0) maj=nums[i+1];
}
return maj;
}
};