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.
利用投票法即可:遇到相同的元素,就将计数器加一;否则减一,如果为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; } };