R5-多维动态规划篇
多维动态规划的核心在于建立多维状态记录表。
本题中,建立dp二维数组表(初始化为1)
dp[i][j]=dp[i-1][j]+dp[i][j-1]
注意,需要判断是否存在,因为二维数组有边界
第一种处理需要判断边界
第二种:换个角度想想,不考虑外围那一圈,考虑了也是一种方法
class Solution:
def uniquePaths(self, m: int, n: int) -> int:
dp=[[1]*n for _ 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]