Write a PHP program to find a single element in an array where every element appears three times except for one.
Input : array(5, 3, 4, 3, 5, 5, 3)
<?php function single_number($arr) { $ones = 0; $twos = 0; $common_one_two = 0; for($i=0; $i<sizeof($arr); $i++) { $twos = $twos | ($ones & $arr[$i]); $ones = $ones ^ $arr[$i]; $common_one_two = ~($ones & $twos); $ones &= $common_one_two; $twos &= $common_one_two; } return $ones; } $arr1 = array(5, 3, 4, 3, 5, 5, 3); $arr2 = array(-1, 1, 1, -1, -1, 1, 0); print_r($arr1); print_r('Single Number: '.single_number($arr1)."\n"); print_r($arr2); print_r('Single Number: '.single_number($arr2)."\n"); ?>
Sample Output:
Array ( [0] => 5 [1] => 3 [2] => 4 [3] => 3 [4] => 5 [5] => 5 [6] => 3 ) Single Number: 4 Array ( [0] => -1 [1] => 1 [2] => 1 [3] => -1 [4] => -1 [5] => 1 [6] => 0 ) Single Number: 0
total answers (1)
start bookmarking useful questions and collections and save it into your own study-lists, login now to start creating your own collections.
Sample Output:
need an explanation for this answer? contact us directly to get an explanation for this answer