假設第一個元素為衆數,計數器置為1,周遊數組,當遇到相同的元素時,計數器加1,否則減1,任何電腦為0的時候,就假設下一個元素為衆數,計數器再置為1。循環結束時,傳回我們假設的衆數,即要求的衆數。
public int majorityElement(int[] nums) {
int result = nums[0];
int times = 1;
for (int i = 1; i < nums.length; i++) {
if (result == nums[i]) {
times++;
} else {
times--;
if (times == 0) {
result = nums[++i];
times++;
}
}
}
return result;
}