Задачи PHP: найдите один элемент в массиве, где каждый элемент появляется три раза, кроме одного
Задачи PHP - 1: упражнение 10 с решением
Напишите программу PHP, чтобы найти один элемент в массиве, где каждый элемент появляется три раза, кроме одного.
Вход: массив (5, 3, 4, 3, 5, 5, 3)
Пояснение:
Пример решения :
PHP-код:
<?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");
?>
Пример вывода:
массив ( [0] => 5 [1] => 3 [2] => 4 [3] => 3 [4] => 5 [5] => 5 [6] => 3 ) Одноместный номер: 4 массив ( [0] => -1 [1] => 1 [2] => 1 [3] => -1 [4] => -1 [5] => 1 [6] => 0 ) Одиночный номер: 0
Блок - схема:
Редактор кода PHP:
Внесите свой код и комментарии через Disqus.
Предыдущий: Напишите программу PHP, чтобы найти одно число в массиве, которое не встречается дважды.
Далее: Написать программу PHP, чтобы найти один элемент, который появляется один раз в массиве, где каждый элемент появляется дважды, кроме одного.
Каков уровень сложности этого упражнения?
Новый контент: Composer: менеджер зависимостей для PHP , R программирования
disqus2code