《Leetcode of December》62. 不同路径

class Solution:
    def uniquePaths(self, m: int, n: int) -> int:
        
        if m==0 or n==0:
            return 0
        
        #组合数学
        return comb(m + n - 2, n - 1)

        #动态规划
        dp=[[0 for _ in range(n)] for _ in range(m)]
        for i in range(m):
            for j in range(n):
                if i==0 or j==0:
                    dp[i][j]=1
                else:
                    dp[i][j] = dp[i-1][j]+dp[i][j-1]
        return dp[-1][-1]

  • 初始化第一行和第一列都为1,因为机器人只有向右或者向下的两种选择,因此第一行和第一列都初始化为1
  • 双层循环遍历网格,动态转移方程dp[i][j]=dp[i-1][j]+dp[i][j-1]
  • dp[i][j]表示到(i,j)有多少条不同的路径

总结:比较简单的一个动态规划问题,需要确定的就是动态转移方程和初始状态。

 

猜你喜欢

转载自blog.csdn.net/weixin_37724529/article/details/110916746