Чат Telegram
Группа ВКонтакте
php

По задаче "Все комбинации заданной длины"

Здравствуйте, при запуске тестов в задаче "Все комбинации заданной длины" выдаёт ошибку 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";
    }

Я так понимаю из-за рекурсивной функции, локальный сервер показывает правильный результат. Как быть?

kisma6@mail.ru 31.08.2020 в 16:32

Ответы на вопрос (1)


Нужно оптимизировать, искать место в котором потребляется много памяти

ivashkevich 03.09.2020 в 17:17

Добавить новый ответ