任务描述
思路
- 到达点(i,j)的不同路径数记为f(i,j)则
f(i,j)=f(i-1,j)+f(i,j-1)
- 使用一个二维数组来记录到达所有点的路径数
- 为了避免数组越界,声明(n+1)*(m+1)的数组,从(1,1)开始从左向右、从上向下更新数组
- 返回(n,m)的值
实现代码
class Solution:
def uniquePaths(self, m: int, n: int) -> int:
ary = [[0 for i in range(m+1)] for i in range(n+1)]
ary[1][1]=1
for i in range(1,n+1):
for j in range(1,m+1):
if i!=1 or j!=1:
ary[i][j]=ary[i-1][j]+ary[i][j-1]
return ary[n][m]