摩尔投票算法(Moore majority vote algorithm)

1.关于摩尔投票算法 主要用于查找 【数组中出现次数超过一半的数字】
2.理念是“正负抵消” (将参照数字与不同的数字抵消)
3.时间和空间复杂度分别为 O(N) 和O(1)
nums = [1,2,5,9,5,9,5,5,5]
`
var majorityElement = function(nums) {
let n = nums[0]
let c = 1

for (let i = 1; i < nums.length; i++) {
if (n !== nums[i]) {
c--
}
if (c === 0) {
n = nums[i]
}
if (nums[i] === n) {
c++
}
}

return c > 0 ? n : -1
};
`

你可能感兴趣的:(摩尔投票算法(Moore majority vote algorithm))