码迷,mamicode.com
首页 > 其他好文 > 详细

leetcode 每日一题 62. 不同路径

时间:2020-06-06 15:37:59      阅读:68      评论:0      收藏:0      [点我收藏+]

标签:ima   src   font   bsp   维数   nbsp   规律   range   滚动   

技术图片

技术图片

找规律

思路:

由题意可知,由于只能向下或向右移动,所以总共只需要走(m-1)+(n-1)= m+n-2步。而只需要确定m-1步向右的步数或者确定向下的n-1步,即可确定路径,所以共有技术图片或者技术图片种可能。

 

 

代码:

 

class Solution:
    def uniquePaths(self, m: int, n: int) -> int:
        return int(math.factorial(m+n-2)/math.factorial(m-1)/math.factorial(n-1))

 

动态规划

思路:

dp[i][j]表示从起点到 i , j 的路径数量,由题意可知dp[0][j]=1,dp[i][0]=1,在 i != 0 和 j != 0 情况下,dp[i][j] = dp[i-1][j]+dp[i][j-1]

代码:

class Solution:
    def uniquePaths(self, m: int, n: int) -> int:
        dp = [[1]*n] + [[1]+[0] * (n-1) for _ in range(m-1)]
        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[-1][-1]

代码2:

由于二维数组中dp[i][j] = dp[i-1][j]+dp[i][j-1],故可采用一维数组层层滚动更新的方式。

class Solution:
    def uniquePaths(self, m: int, n: int) -> int:
        cur = [1] * n
        for i in range(1, m):
            for j in range(1, n):
                cur[j] += cur[j-1]
        return cur[-1]

 

 

 

 

 

 

 

 

 

leetcode 每日一题 62. 不同路径

标签:ima   src   font   bsp   维数   nbsp   规律   range   滚动   

原文地址:https://www.cnblogs.com/nilhxzcode/p/13054848.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!