题目描述
解题思路
问到终点一共有多少条路径,那么肯定要计算每个点的路径。那么就是用动态规划求解。
dp数组的含义
dp[i][j]应该表示为坐标(i,j)有多少种路径可以达到
dp数组的最终状态
机器人只能向下或者向右,无非就是两种情况的和
dp[i][j]=dp[i-1][j]+dp[i][j-1]
dp的数组初始状态
1.当为dp第一个格子时只有一种情况赋值为1
2.当为第一排时此时机器人的路径只能从左边走过来
dp[i][j]=dp[i][j-1]
3.当为第一列时此时机器人的路径只能从上面走过来
dp[i][j]=dp[i-1][j]
代码
class Solution:
def uniquePaths(self, m: int, n: int) -> int:
dp=[[0]*n for _ in range(m)]
for x in range(m):
for y in range(n):
if x==y==0:
dp[x][y]=1
continue
if x==0 and y!=0:
dp[x][y]=1
continue
if y==0 and x!=0:
dp[x][y]=1
continue
dp[x][y]=dp[x-1][y]+dp[x][y-1]
return dp[m-1][n-1]