Given an array of size n, find the majority element. The majority element is the element that appears more than ⌊ n/2 ⌋
times.
You may assume that the array is non-empty and the majority element always exist in the array.
class Solution {
public:
int majorityElement(vector<int> &num) {
int max=num[0],count=1;
for(int i=1;i<num.size();i++){
if (count==0){
max=num[i];
count++;
}
else if (max==num[i]){
count++;
}
else
count--;
}
return max;
}
};
利用Moore's voting algorithm选出次数超过半数以上的元素~~复杂度o(n)