网站数据统计怎么做搜索引擎营销方法
时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 64M,其他语言128M 热度指数:661278
本题知识点: 哈希 数组
题目描述
数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字。例如输入一个长度为9的数组{1,2,3,2,2,2,5,4,2}。由于数字2在数组中出现了5次,超过数组长度的一半,因此输出2。如果不存在则输出0。
示例1
输入
[1,2,3,2,2,2,5,4,2]
返回值
2
思路:遍历用map存储每个元素,相同元素进行累加,然后判断获取的val是否大于length,大于返回key,否则返回0
function MoreThanHalfNum_Solution(numbers) {// write code herelet len = numbers.lengthlet map = new Map()for (let i = 0; i < len; i++) {let tmp = map.get(numbers[i])if (tmp === undefined) {map.set(numbers[i], 1)} else {map.set(numbers[i], ++tmp)}if (map.get(numbers[i]) > len / 2) return numbers[i]}return 0
}