从m x n矩阵边缘情况的左上角到右下角的所有可能移动?

时间:2016-10-12 15:11:04

标签: python dynamic

我试图解决我的算法类的作业问题,该问题涉及从m x n矩阵的左上角移动到右下角。我的束缚(与SO上的大多数帖子不同)是我可以向右,向下或对角线向下移动。我已经通过将先前的子问题存储在m×n矩阵中来实现动态编程的尝试,但是我无法通过教师提供的测试用例。不幸的是,我不知道输入,也无法打印输出,所以我想知道可能会丢失哪些边缘情况?我确保m,n必须大于0才能输出正确的值,我知道正在传入一个整数(这就是为什么我没有isinstance(m,int)检查)

def  allPossibleRoutes(m, n):
    if m == 1 or n == 1:
        return 1
    if m <= 0 or n <= 0:
        return 0

    matrix = [[0 for i in range(0,n)] for j in range(0,m)]

    for i in range(0,m):
        matrix[i][0] = 1
    for i in range(0,n):
        matrix[0][i] = 1
    for i in range(1,m):
        for j in range(1, n):
            matrix[i][j] = matrix[i-1][j] + matrix[i][j-1] + matrix[i-1][j-1]
    return matrix[m-1][n-1]

我会感激任何帮助,因为我已经被困在这几天了,而且无法找到我错过的优势!

0 个答案:

没有答案