python--lintcode114.不同的路径

描述

有一个机器人的位于一个 m × n 个网格左上角。

机器人每一时刻只能向下或者向右移动一步。机器人试图达到网格的右下角。

问有多少条不同的路径?

n和m均不超过100

您在真实的面试中是否遇到过这个题?  是

样例

给出 m = 3 和 n = 3, 返回 6.
给出 m = 4 和 n = 5, 返回 35.

这一题也是典型动态规划题,因为求解方案数量,具体动态规划的思想可以看我上一篇文章:https://blog.csdn.net/wenqiwenqi123/article/details/81281703

那么这一题的思路就是:到某个结点的方案数量=它上方结点的方案数+它左方结点的方案数

别忘了初始化状态的时候,第一行和第一列所有结点的方案数只有1.

代码如下:

class Solution:
    """
    @param m: positive integer (1 <= m <= 100)
    @param n: positive integer (1 <= n <= 100)
    @return: An integer
    """
    def uniquePaths(self, m, n):
        # write your code here
        map=[[0 for i in range(n)] for j in range(m)]
        for i in range(n):
            map[0][i]=1
        for i in range(m):
            map[i][0] = 1
        for i in range(1,m):
            for j in range(1,n):
                map[i][j]=map[i-1][j]+map[i][j-1]
        return map[m-1][n-1]


s = Solution()
print(s.uniquePaths(4,5))

猜你喜欢

转载自blog.csdn.net/wenqiwenqi123/article/details/81287884
114