# 主要元素(17.10)
# 题目
数组中占比超过一半的元素称之为主要元素。给定一个整数数组,找到它的主要元素。若没有,返回-1
。
# 示例
输入:[1,2,5,9,5,9,5,5,5]
输出:5
输入:[3,2]
输出:-1
# 算法
使用map按照数字:出现次数
记录,当出现次数大于数组长度一半时,返回该数字,否则返回-1
function majorityElement(nums) {
let map = {};
for (let item of nums) {
if (map[item]) {
map[item]++;
} else {
map[item] = 1;
}
if (map[item] > nums.length / 2) {
return item;
}
}
return -1;
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
2
3
4
5
6
7
8
9
10
11
12
13
14