排序法 简单明了 但是时间复杂度为O(nlogn)
function MoreThanHalfNum_Solution(numbers) { let sortedArr = numbers.sort(); let mediumIndex = Math.floor(sortedArr.length/2); let count = 0; for(let i = 0; i < sortedArr.length; i++){ if(sortedArr[i] == sortedArr[mediumIndex]){ count ++; } } return count > mediumIndex ? sortedArr[mediumIndex] : 0; } module.exports = { MoreThanHalfNum_Solution : MoreThanHalfNum_Solution };
要注意测试用例 某一数字出现次数等于长度的一半的时候 如[1,2,2,2,3,3],这种情况还是返回0