美文网首页
62. 不同路径

62. 不同路径

作者: ZMT_sherry | 来源:发表于2018-09-22 19:06 被阅读0次

    一个机器人位于一个 m x n 网格的左上角 (起始点在下图中标记为“Start” )。

    机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角(在下图中标记为“Finish”)。

    问总共有多少条不同的路径?

    image.png

    例如,上图是一个7 x 3 的网格。有多少可能的路径?

    说明:m 和 n 的值均不超过 100。

    示例 1:

    输入: m = 3, n = 2
    输出: 3
    解释:
    从左上角开始,总共有 3 条路径可以到达右下角。

    1. 向右 -> 向右 -> 向下
    2. 向右 -> 向下 -> 向右
    3. 向下 -> 向右 -> 向右
      示例 2:

    输入: m = 7, n = 3
    输出: 28

    class Solution:
        def uniquePaths(self, m, n):
            """
            :type m: int
            :type n: int
            :rtype: int
            """
            m,n=n,m
            dict={i:{} for  i in range(1,m+1)}
            dict[1][1]=1
            def tran(row,col):
    
                if dict[row].__contains__(col):
                    return dict[row][col]
                else:
                    left=0
                    up=0
                    if col>1:
                        if dict[row].__contains__(col-1) :
                            left=dict[row][col-1]
                        else:
                            left=tran(row,col-1)
                            dict[row][col - 1]=left
                    if row>1:
                        if dict[row-1].__contains__(col) :
                            up=dict[row-1][col]
                        else:
                            up=tran(row-1,col)
                            dict[row - 1][col]=up
    
                    dict[row][col]=up+left
                    return dict[row][col]
            return  tran(m,n)
    

    相关文章

      网友评论

          本文标题:62. 不同路径

          本文链接:https://www.haomeiwen.com/subject/gbuxoftx.html