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.
https://en.wikipedia.org/wiki/Boyer–Moore_majority_vote_algorithm
public class Solution {
public int majorityElement(int[] nums) {
int rst = 0;
int counter = 0;
for(int i = 0; i < nums.length; i++) {
if(counter == 0) {
rst = nums[i];
counter = 1;
} else {
if(nums[i] == rst) {
counter++;
} else {
counter--;
}
}
}
return rst;
}
}