我是靠谱客的博主 爱撒娇小伙,最近开发中收集的这篇文章主要介绍JavaScript 数组:数组中出现次数超过一半的数字,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

描述
数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字。例如输入一个长度为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 数组:数组中出现次数超过一半的数字所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(51)

评论列表共有 0 条评论

立即
投稿
返回
顶部