1. 题目
2. 思路
- 定义哈希表map,存储nums数组中各个数字出现的次数;
- 计算出数组长度的一半:flag
- 遍历map,找到数组value中超过flag对应的key,将其返回;如果找不到的话,最后返回-1
3. 代码实现
/**
* @param {number[]} nums
* @return {number}
*/
var majorityElement = function(nums) {
let map = new Map()
for (let num of nums) {
map.set(num, (map.get(num) || 0) + 1)
}
// return map
const flag = Math.floor(nums.length / 2)
// console.log(flag);
for (let [key, value] of map) {
if (value > flag) return key
}
return -1
};