一个位置,他只能从上面或者左面到达这个位置。所以到达某个位置的路径数应该的左面位置路径数加上上面位置路径数。但是最上面一行和最左面一列应该都是1 。因为从dp[ 0 ][ 0 ]到这些位置都只有一种路径。
class Solution:
def uniquePaths(self, m: int, n: int) -> int:
if m==0 or n==0:
return 0
if m==1 or n==1:
return 1
dp = [[0]*n]*m
dp[0][0] = 1
for i in range(m):
for j in range(n):
if i == 0 and j!=0:
dp[i][j] = dp[i][j-1]
elif j == 0 and i!=0:
dp[i][j] = dp[i-1][j]
else:
dp[i][j] = dp[i][j-1]+dp[i-1][j]
return dp[-1][-1]