Как преобразовать этот рекурсивный дп в итерационный дп - PullRequest
0 голосов
/ 28 марта 2020

Я борюсь с итеративным дп, мое решение верное, но мой подход требует много памяти, я буду рад, если вы поможете мне найти итеративный дп для этого.

static int dir(int[] a, int i, int j) {
    int s = 2 * a[i] - a[j];
    if (s >= 0 || i>=j)
        return 0;
    else if (dp[i][j] != -1)
        return dp[i][j];
    else return dp[i][j] = Math.min((1 + dir(a, i + 1, j)), (1 + dir(a, i, j - 1)));
}

Это моя рекурсивная функция .

dp = new int[n][n];
    for (int i = 0; i < n + 1; i++)
        Arrays.fill(dp[i], -1);

Это моя инициализация.

        System.out.println(dir(a, 0, n - 1));

Наконец, мой вызов функции.

Исходный вопрос

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...