如何在NxM网格中找到所有路径?

时间:2018-04-04 05:04:19

标签: algorithm recursion dynamic-programming

这是我的问题:

  

机器人位于m x n网格的左上角

     

机器人只能在任何时间向下或向右移动。机器人正试图到达网格的右下角。

     

有多少可能的独特路径?

这是我的代码:

def paths(m,n,a,b,memo):

    if(a == 0 or b == 0):
        return 0

    if m>a or n>b:
        return 0

    if m==a and n==b:
        return 1

    if str(m)+str(n) in memo:
        return memo[str(m)+str(n)]
    else:  
        memo[str(m)+str(n)] = paths(m+1,n,a,b,memo) + paths(m,n+1,a,b,memo)
        return memo[str(m)+str(n)] 

m=23
n=12
memo =  dict()
print(paths(0,0,m-1,n-1,memo))

对于大多数情况,我得到了正确答案,但是对于m = 23和n = 12的情况,我的答案是错误的。当我得到193536720

时,正确答案为201648450

0 个答案:

没有答案