Привет всем, нужно посчитать количество по соседству единиц(соседство , в смысле справа,слева,верх,вниз и по горизонтали все вхождения в матрице).
https://www.hackerrank.com/contests/7days-javascri...<?php
//функция по подсчету максимальное количества значени 1
function fill($arr, $i, $j, $n) {
if ($i < 0 || $i >= $n || $j < 0 || $j >= $m) {
return 0;
}elseif($arr[$i][$j] === 1)
{
$arr[$i][$j] = 0;
return 1 + fill($arr, $i-1, $j-1, $n)
+ fill($arr, $i-1, $j, $n)
+ fill($arr, $i-1, $j+1, $n)
+ fill($arr, $i, $j-1, $n)
+ fill($arr, $i, $j+1, $n)
+ fill($arr, $i+1, $j-1, $n)
+ fill($arr, $i+1, $j, $n)
+ fill($arr, $i+1, $j+1, $n);
}
return 0;
}
//Создание матрицы
$n = 3;
$arr = [];
for ($a=0; $a <= $n; $a++)
{
{
for ($b=0; $b <= $n; $b++)
if($b == $n){
echo $arr[$a][$b] = rand(0, 1);
echo "<br>";
}else{
echo $arr[$a][$b] = rand(0, 1).''.' ';
}
}
}
//Вызов функции
$chck = 0;
$rslt = 0;
for ($i = 0; $i < $n; $i++) {
for ($j = 0; $j < $n; $j++) {
$chck = fill($arr, $i, $j, $n);
$rslt = ($chck > $rslt) ? $chck : $rslt;
}
}
echo $rslt;