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.
// Moore's voting algorithm
class Solution {
public:
int majorityElement(vector<int> &num) {
int res = num[0];
int cnt = 1;
for (int i = 1; i < num.size(); ++i) {
res == num[i] ? cnt++ : cnt--;
if (!cnt) {
res = num[i];
cnt = 1;
}
}
return res;
}
};