题解 |投票算法
数组中出现次数超过一半的数字
https://www.nowcoder.com/practice/e8a1b01a2df14cb2b228b30ee6a92163
/**
* 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
*
*
* @param numbers int整型一维数组
* @return int整型
*/
function MoreThanHalfNum_Solution(numbers) {
// write code here
let can = null;
let count = 0;
for (let i = 0; i < numbers.length; i++) {
if (count === 0) {
can = numbers[i];
count = 1;
} else {
count += numbers[i] === can ? 1 : -1;
}
}
let index = 0;
for (let n = 0; n < numbers.length; n++) {
if (numbers[n] === can) index++;
}
return index > numbers.length / 2 ? can : null;
}
module.exports = {
MoreThanHalfNum_Solution: MoreThanHalfNum_Solution,
};

