class Solution:
def uniquePaths(self, m: int, n: int) -> int:
res = 1
total = m-1 + n-1
#计算组合数
for i in range(total, m-1, -1):
res = res * i #分子累乘
for j in range(1, n):
res = res // j #分母累除
return res
class Solution:
def uniquePaths(self, m: int, n: int) -> int:
path = [[1]*m for _ in range(n)] #记录表
for i in range(1, n): #从第1行开始
for j in range(1, m): #从第1列开始
path[i][j] = path[i-1][j] + path[i][j-1]
return path[n-1][m-1]
2020.3.29
class Solution:
def uniquePaths(self, m: int, n: int) -> int:
if m==1 or n==1:
return 1
dp = [[0] * m for _ in range(n)]
for i in range(1, n):
dp[i][0] = 1
for j in range(1, m):
dp[0][j] = 1
for i in range(1, n):
for j in range(1, m):
dp[i][j] = dp[i-1][j] + dp[i][j-1]
return dp[n-1][m-1]