這個演算法是找一串數字中的眾數,特色是只需要一個計數器可以做到空間複雜度為 O(1) 的計算,被抵銷掉則視為隨機出現的亂數
var majorityElement = function(nums) {
let candidate = null;
let count = 0;
for (let num of nums) {
// 如果當前沒有候選人,就選當前數字當候選人
if (count === 0) {
candidate = num;
}
// 如果跟候選人一樣,戰力 +1;不一樣,戰力 -1(同歸於盡)
count += (num === candidate) ? 1 : -1;
}
return candidate;
};