使用递归解决矩阵问题时得到错误答案

用户1

问题是:给定具有随机 (0, 1) 值的 mXn 矩阵。从最开始的位置开始向 m-1, n-1 位置(最后一个位置)移动,我们可以移动的唯一方向是向下或向右。

规则:

  1. 如果找到 1 个无法移动
  2. 唯一可能的移动是 0 所以找到到达 (m-1, n-1) 位置的可能方法。

示例:matrix((0, 0, 0), (0, 0, 0), (0, 0, 0)) 答案:6

这是我的逻辑:

public class Main {
    static int possibility = 0;
    static int r = 3;
    static int c = 3;
    public static void main(String[] args) {
        int array[][] = {{0, 0, 0}, {0, 0, 0}, {0, 0, 0}};
        // int array[][] = {{0, 1, 1}, {0, 0, 1}, {1, 0, 0}};
        matrixProblem(array, 0, 0);
        System.out.println("total possible solutions: ");
        System.out.println(possibility);
    }    

    static void matrixProblem(int[][] array, int i, int j) {
        if (i == r - 1 && j == c - 1) {
            possibility++;
            return;
        }

        if(i+1 < r) {
            if(array[++i][j] == 0) {
                matrixProblem(array, i, j);
            }
        }

        if(j+1 < c) {
            if(array[i][++j] == 0) {  
                matrixProblem(array, i, j);
            }
        }
    }
}

根据我的逻辑,它给出了错误的答案。

拉什卡迪瓦

您的逻辑几乎是正确的,但是问题出在递归调用时,您正在传递递增的i值,而不是仅传递i+1j 值相同。

编辑1:

 if(i+1 < r) {
        if(array[i+1][j] == 0) {
                matrixProblem(array, i+1, j);
            }
        }

        if(j+1 < c) {
            if(array[i][j+1] == 0) {  
                matrixProblem(array, i, j+1);
            }
        }
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

我正在解决PRIME GENERATOR的SPOJ问题2。我得到了SPOJ编译器输出的错误答案。有人能帮我吗?

LeetCode问题Path Sum II:递归解决方案错误

使用递归可以解决什么问题?

为什么我在这个问题上总是得到错误的答案?

当int32行为异常时得到错误答案,如何解决?C#

LawOfCosines解决c,但得到奇怪的答案

在递归问题中使用list.pop()和list = list [:-1]时,为什么会得到不同的结果

为什么在Swift中使用pow会得到错误的答案?

尝试输出演员角色时得到错误答案

我在Matlab中通过矩阵求解线性方程组得到了错误的答案

得到错误答案使用线程安全计数器

在搜索选项中得到错误的答案

JS递归函数:无需递归即可正常工作,使用递归时返回答案加“ Undefined”

为什么我在 Ruby 中使用递归时无法得到正确答案?

使用依赖工厂方法时如何解决递归问题

大一小两个整数相除时得到错误答案

使用递归时在方法中调用方法得到不同的结果

获取列名总和时得到错误答案

我的代码中使用递归回溯解决数独问题的错误是什么?

当我找到多个解决方案时,为什么我在 gurobi 中得到相同的答案?

错误:“必须调用对非静态成员函数的引用”在使用类时没有得到解决

为什么在使用 getline() 计算文件中的行数时得到错误答案?

使用 numpy 计算矩阵的逆但得到了错误的答案

使用 arr copy() 函数时得到错误答案

计算几何级数时得到错误答案

Django 使用 Sum 进行多重注释得到错误答案

在 GeeksForGeeks 上解决“Check for BST”问题,但一直得到错误的答案,但我似乎找不到问题所在。有人可以解释一下吗?

递归硬币变化问题给出了错误的答案

当尝试使用旧答案从 url 获取 json 时,它只会引发错误。可能是什么问题?