Задать вопрос
@art055

Что в этом решении не так?

Привет всем, нужно посчитать количество по соседству единиц(соседство , в смысле справа,слева,верх,вниз и по горизонтали все вхождения в матрице).
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;
  • Вопрос задан
  • 287 просмотров
Подписаться 1 Простой 17 комментариев
Пригласить эксперта
Ответы на вопрос 1
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы