美文网首页
矩阵问题 | 从左上到右下路径数

矩阵问题 | 从左上到右下路径数

作者: icebreakeros | 来源:发表于2019-08-04 00:13 被阅读0次

从左上到右下路径数

m*n的矩阵中,从左上到右下的路径数,只能通过向下和向右走

递归法

public class PathInMatrix {

    // 使用递归算法
    public int path(int rows, int columns) {
        if (rows == 0 && columns == 0) {
            return 0;
        }

        if (rows == 0 || columns == 0) {
            return 1;
        }

        return path(rows -1, columns) + path(rows, columns - 1);
    }
}

排列组合

public class PathInMatrix {

    // 使用排列组合公式
    public double path2(int rows, int columns) {
        if (rows == 0 && columns == 0) {
            return 0.0;
        }

        if (rows == 0 || columns == 0) {
            return 1.0;
        }
//        return factorial(rows + columns - 2)  / 
// (factorial(rows - 1) * factorial(columns - 1));
        return factorial(rows + columns) 
            / (factorial(rows) * factorial(columns));
    }

    private double factorial(int n) {
        if (n == 0) {
            return 1.0;
        }

        double result = 1.0;
        for (int i = 1; i <= n; i++) {
            result *= i;
        }
        return result;
    }
}

相关文章

网友评论

      本文标题:矩阵问题 | 从左上到右下路径数

      本文链接:https://www.haomeiwen.com/subject/wfmkdctx.html