По задаче "Все комбинации заданной длины"
Здравствуйте, при запуске тестов в задаче "Все комбинации заданной длины" выдаёт ошибку Fatal error: Out of memory (allocated 505413632) (tried to allocate 32768 bytes).
Решение:
$nums = explode(" ", trim(fgets(STDIN)));
$n = trim(fgets(STDIN));
$res = [];
function f($row) {
global $nums, $n, $res;
if(strlen($row) === $n) {
$res[] = $row;
return;
}
for($i = 0; $i < count($nums); $i++ ) {
f($row . $nums[$i]);
}
}
f("");
foreach($res as $val) {
echo implode(" ", str_split($val)) . "\n";
}
Я так понимаю из-за рекурсивной функции, локальный сервер показывает правильный результат. Как быть?
Ответы в обсуждении (1)
Нужно оптимизировать, искать место в котором потребляется много памяти
ivashkevich 03.09.2020 в 17:17
Добавить новый ответ