How to find the majority element in int array with PHP

1 Answer

0 votes
// A majority element = element that appears more than size/2 times in an array[size] 

function getMajorityElement($arr) {
    $num = array_fill(0,10,0);
    $len = count($arr);
    
    for ($i = 0; $i < $len; $i++) {
        $num[$arr[$i]]++;
    }
    
    for ($i = 0; $i < 9; $i++) {
        if ($num[$i] != 0) {
            printf("%d : %d\n", $i, $num[$i]);
            if ($num[$i] > (int)($len / 2)) {
                return $i;
            }
        }
    }
    
    return 0;
}


$arr = array(2, 5, 3, 5, 5, 1, 5, 5, 5, 7, 3);

$majority = getMajorityElement($arr);

if ($majority != 0) {
    printf("majority element = %d\n",$majority);
}
else {
    echo "Majority element doesn\'t exists\n","\n";
}




/*
run:

1 : 1
2 : 1
3 : 2
5 : 6
majority element = 5

*/

 



answered Apr 21, 2023 by avibootz

Related questions

1 answer 112 views
1 answer 116 views
1 answer 123 views
1 answer 104 views
1 answer 115 views
1 answer 91 views
1 answer 154 views
...