Добрый день! Пытаюсь применить алгоритм dfs (поиск в глубину) для того чтобы решить след. задачу: Из листа клетчатой бумаги размером m * N клеток удалили некоторые клетки. На сколько кусков распадется оставшаяся часть листа? Сам код: PHP: <?php /* 1 0 0 0 0 1 0 0 1 0 0 0 0 0 0 1 */ $m = 4; $n = 4; function chest(&$arr, $x, $y){ $arr[$x][$y] == 1; if ((isset($arr[$x][$y+1])) and ($arr[$x][$y+1] != 1)) chest($arr, $x, $y+1); if ((isset($arr[$x+1][$y])) and ($arr[$x+1][$y] != 1)) chest($arr, $x+1, $y); if ((isset($arr[$x][$y-1])) and ($arr[$x][$y-1] != 1)) chest($arr, $x, $y-1); if ((isset($arr[$x-1][$y])) and ($arr[$x-1][$y] != 1)) chest($arr, $x-1, $y); } $mas = [array(0,1,0,0), array(1,1,1,1), array(1,0,1,1), array(1,1,1,0)]; $counter = 0; for ($x = 0; $x < $m; $x++){ for ($y = 0; $y < $n; $y++){ if ($mas[$x][$y] != 1){ chest($mas, $x, $y); ++$counter; } } } echo $counter; Но проблема в том, что при попытке выполнения скрипта возникает ошибка: Allowed memory size of 1610612736 bytes exhausted (tried to allocate 262144 bytes). Кто может подсказать как исправить ошибку или сам скрипт ?
PHP: /* 1 0 0 0 0 1 0 0 1 0 0 0 0 0 0 1 */ ----- $mas = [array(0,1,0,0), array(1,1,1,1), array(1,0,1,1), array(1,1,1,0)]; Теперь объясни