题目 62 不同路径
一个机器人位于一个 m x n 网格的左上角 (起始点在下图中标记为 “Start” )。
机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角(在下图中标记为 “Finish” )。
问总共有多少条不同的路径?
思路
- 动规数组及其下标含义:
dp[i][j]:第i行第j列有dp[i][j]条路径 - 递推公式:
得到dp[i][j]的路径有两个,一个是dp[i-1][j],一个是dp[i][j-1]
dp[i][j] = dp[i-1][j] + dp[i][j-1] - 初始化:
第一行为1,第一列为1,第一个值和其他值均可。 - 遍历方式:
按行从左到右遍历 - 举例验证:
自己画图写写即可
代码
class Solution:
def uniquePaths(self, m: int, n: int) -> int:
dp = [[1]*n for i in range(m)]
for i in range(1, m):
for j in range(1, n):
dp[i][j] = dp[i-1][j] + dp[i][j-1]
return dp[m-1][n-1]
标签:机器人,int,不同,路径,range,62,dp
From: https://www.cnblogs.com/edkong/p/16829869.html