Given an array nums
of size n
, return the majority element.
The majority element is the element that appears more than ⌊n / 2⌋
times. You may assume that the majority element always exists in the array.
Solution
利用投票法即可:遇到相同的元素,就将计数器加一;否则减一,如果为0,则赋值给下一个元素
点击查看代码
class Solution {
public:
int majorityElement(vector<int>& nums) {
int n = nums.size();
if(n==1)return nums[0];
int ans=nums[0];
int cnt=1;
for(int i=1;i<n;i++){
if(nums[i]==ans)cnt++;
else{
cnt--;
if(cnt==0)ans=nums[i],cnt=1;
}
}
return ans;
}
};