找出数组中出现次数超过一半的数,现在有一个数组,已知一个数出现的次数超过了一半,请用O(n)的复杂度的算法找出这个数

var arr= [1,1,4,51,1,1,1,1,1,1,4,4];
var A = arr[0];B=0;
for(var i=0;i<=arr.length;i++){
    if(A==arr[i]){
        B++;
    }else{
        B--;
        if(B==0){
            A = arr[i];
            B=1;
        }
    }
    
}
console.log(A)

 

posted @ 2020-03-10 15:41  阿拉善的樵夫  阅读(60)  评论(0编辑  收藏