概述
描述
数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字。例如输入一个长度为9的数组[1,2,3,2,2,2,5,4,2]。由于数字2在数组中出现了5次,超过数组长度的一半,因此输出2。你可以假设数组是非空的,并且给定的数组总是存在多数元素。1<=数组长度<=50000
示例1
输入:[1,2,3,2,2,2,5,4,2] 返回值:2
示例2
输入:[3,3,3,3,2,2,2] 返回值:3
思路:创建一个哈希数组,然后遍历哈希数组,返回哈希数组中值大于原数组一般的数组下标。
function MoreThanHalfNum_Solution(numbers)
{
// write code here
let arr=[];
for(let i=0;i<numbers.length;i++){
if(arr[numbers[i]]===undefined){
arr[numbers[i]]=1;
}
else arr[numbers[i]]++;
}
for(let j=0;j<arr.length;j++){
if(arr[j]>numbers.length/2)
return j;
}
}
代码第六行也可以优化为 if(!arr[numbers[i]])
function MoreThanHalfNum_Solution(numbers)
{
// write code here
var arr={};
var num=numbers.length/2
for(var i=0;i<numbers.length;i++){
if(!arr[numbers[i]]){
arr[numbers[i]]=1;
}else{
arr[numbers[i]]++;
}
if(arr[numbers[i]]>num){
return numbers[i];
}
}
return 0;
}
最后
以上就是爱撒娇小伙为你收集整理的JavaScript 数组:数组中出现次数超过一半的数字的全部内容,希望文章能够帮你解决JavaScript 数组:数组中出现次数超过一半的数字所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复