https://leetcode-cn.com/problems/majority-element/ 位运算、数组、分治算法
哈希表
function majorityElement(nums: number[]): number {const map = new Map<number, number>()const mid = nums.length >> 1for (let item of nums) {let value = map.get(item) || 0if(value === mid) {return item}map.set(item, value + 1)}return -1};
排序
function majorityElement(nums: number[]): number {
return nums.sort()[nums.length >> 1]
};
投票算法
function majorityElement(nums: number[]): number {
let count = 0
let candidate = 0
for(let item of nums) {
if(count === 0) {
candidate = item
}
count += item === candidate ? 1 : -1
}
return candidate
};
